关于STM32 通过HAL I2C主从机通讯的地址配置
为什么,在软件配置从地址后,打开keil,里面地址变成两倍:L 是不是左移一位给读写位了?:( 楼主,I2C硬件的地址占用7位,如下图所示,从代码上来看是直接左移了一位。/*---------------------------- I2Cx OAR1 Configuration ---------------------*/
/* Configure I2Cx: Own Address1 and addressing mode */
hi2c->Instance->OAR1 = (hi2c->Init.AddressingMode | hi2c->Init.OwnAddress1);
/*---------------------------- I2Cx OAR2 Configuration ---------------------*/
/* Configure I2Cx: Dual mode and Own Address2 */
hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2);
cubeMx的是7位地址,代码是8位地址 关键是这样代码还能正常工作不 修改这个数值看看结果相差的变化 我两个板子可以正常通讯,但是我是觉得那我在CUBUMX软件里面设置地址就没有异议了:L,有点鸡肋的赶脚 所以硬件I2C的读写位是不能自行设置的,大概明白了:D
页:
[1]