1)场景:最近调试ADS1220 的芯片,需要读取不同通道的AD值,修改寄存器0的值时一直失败
但是在单片机启动时,写寄存器0时,值能正确写入,并正确读出,之后写完读取出的都是FF或其他异常值,
2)怀疑方向:
1、SPI通信异常;
上电第一次的读写都正常,这个原因不太可能;
2、写完之后,延时2ms;
试了,没用;
(通过逻辑分析仪发现,启动完成之后在写寄存器时,其实发送的数据全是FF,电平拉不低)
3、管脚被其他地方影响;
检查没有其他地方配置这个管脚,只能注释掉部分代码,逐个定位;
3)原因:最后,在注释掉定时器8初始化代码的时候,发现功能正常,查看手册发现定时器8的通道和SPI有冲突(单片机是N32G455)
4)遗留问题:在定时器8的初始化函数中只配置了PC6、7管脚,没有配置其他管脚,为什么还会影响PA6、7?