Use Stm32cubemx to get data from nunchuck

Description:

In this topic I will show how to connect nunchuck controller with stm32microcontroller by using software stm32cubemx .
Nunchuck controller is used i2c interface.

To set up i2c interface with stm32cubemx you can view at this topic
Nunchuck address is 0x52.Clock was set up with 100kHz.


.........................................................
#define nunchuck 0x52<<1

I2C_HandleTypeDef hi2c1;
 ......................................................................

int main(void)
{

  ...............................................................................

  char cmd[1];
  uint8_t data[6];
  uint8_t  handShake[2] ;
  handShake[0]=0xf0;
  handShake[1]=0x55;
  HAL_I2C_Master_Transmit(&hi2c1,nunchuck,handShake, 2,0x1000);
  HAL_Delay(100);
  handShake[0]=0xfb;
  handShake[1]=0x00;
  HAL_I2C_Master_Transmit(&hi2c1,nunchuck,handShake, 2,0x1000);
  HAL_Delay(100);
  while (1)
  { 

...............................................................................................
   cmd[0]=0x00;
    HAL_I2C_Master_Transmit(&hi2c1,nunchuck,cmd, 1,0x1000);
    HAL_Delay(1);
   HAL_I2C_Master_Receive(&hi2c1, nunchuck, data,6,0x1000);
   uint16_t   accelX = (data[2] << 2)|((data[5] >> 2) & 0x03) ;
   uint16_t  accelY = (data[3] << 2)|((data[5] >> 4) & 0x03) ;
   uint16_t  accelZ = (data[4] << 2)|((data[5] >> 6) & 0x03) ;
   uint8_t buttonc=(data[5]&0x02)>>1;
   uint8_t buttonz=data[5]&0x01;
   ...........................................................
  }
 

 .........................................................................