一般常用的寄存器地址是8位的,遇到一个寄存器地址为16为的器件。总结一下代码编写。
寄存器地址16位的为SY103,寄存器地址为8位的为LT7911.
测试代码
void DebugLEDTask(void *argument)
{
uint8_t input[2]={0x00,0x7f};
uint8_t value[2]={0x00,0x00};
uint8_t num=sizeof(input)/sizeof(input[0]);
uint8_t input1[1]={0x01};
uint8_t value1[1]={0x00};
uint8_t num1=sizeof(input1)/sizeof(input1[0]);
/* USER CODE BEGIN DebugLEDTask */
/* Infinite loop */
for (;;)
{
HAL_GPIO_TogglePin(MCU_LED_GPIO_Port, MCU_LED_Pin);
osDelay(1000);
HAL_I2C_Mem_Write(&hi2c2, LT_ADDRESS, AUDIO_CHANNEL_ADDRESS, I2C_MEMADD_SIZE_8BIT, input1, num1,1000);
HAL_I2C_Mem_Read(&hi2c2, LT_ADDRESS, AUDIO_CHANNEL_ADDRESS, I2C_MEMADD_SIZE_8BIT, value1, num1,1000);
HAL_I2C_Mem_Write(&hi2c2, SY_ADDRESS_WRITE, SY_GAMSET_1_ADDRESS, I2C_MEMADD_SIZE_16BIT, input, num,1000);
HAL_I2C_Mem_Read(&hi2c2, SY_ADDRESS_WRITE, SY_GAMSET_1_ADDRESS, I2C_MEMADD_SIZE_16BIT, value, num,1000);
}
/* USER CODE END DebugLEDTask */
}
lt7911该位置寄存器参考手册
sy103该位置寄存器参考手册
仿真测试
文章来源:https://www.toymoban.com/news/detail-802918.html
可以看到把值写入到相对应的寄存器内,并且读出。文章来源地址https://www.toymoban.com/news/detail-802918.html
到了这里,关于STM32 i2c读写寄存器地址8位,16位的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!