这种确实头疼,不过不要有太大压力,或许简单思索或者和同事聊聊,会迎刃而解。



13楼
今天使10月31日,因为不死心,又重新测试了那个IIC的程序,终于找到问题出现的原因了。在
控制寄存器 IICCON中有一个AA的位,这个位在描述中:
应答标志位
0:回复 NACK(SDA 上为高电平)
1:回复 ACK(SDA 上为低电平)
之前我以为是从机收到数据后,主机会根据从机的回应来设置这个“AA”标志位。今天做的测试程序中,在发送要传送给从机的数据之前,根据从机的应答方式,提前设置这个位。比如从机在收到从机地址+写指令时,如果回应信号为ACK(即SDA=0),则设置:
IICCON |= 0x04; // AA=1,确认子机回复ACK信号
这样测试后,终于实现主机****模式下的完整处理过程,和资料说明的一致了。
真不容易啊。隋然资料中没有明晰说明这个AA位应该如何处理,但我没有真正理解才是内因啊。



回复
打赏帖 | |
---|---|
【STM32F769】AI之与本地deepseek对接被打赏50分 | |
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏100分 | |
我想要一部加热台+多合一调试工具被打赏18分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 | |
【换取手持数字示波器】树莓派PICO调试器官方固件本地化部署实践被打赏24分 | |
【换取手持数字示波器】分享一个KEIL无法识别CMSIS-DAP调试器的解决办法被打赏20分 | |
【换取手持数字示波器】分享一个自制的ArduinoNano扩展板底板被打赏23分 | |
【换取手持示波器】树莓派PICOW网页烟花被打赏18分 |