1、外设引脚切换时,在参考手册中找不到对应寄存器的情况。
该型号单片机,外设接口可在RPn引脚随意切换,切换时有些外设复用相关的寄存器在参考手册中找不到的,可以去具体型号的datasheet中找。
2、调试串口时,出现过能正常发送,但无法接收的情况。
如果在硬件确认没问题的情况下,出现接收不到的情况,建议检查ADC外设中对于IO口模拟/数字模式设置的ADnPCFGL寄存器,因为一些IO口开机默认被设置为了模拟口。因此可以在软件初始化时,统一设置 AD1PCFGL=0xFFFF;即将所有引脚先设置为数字口,之后如果ADC中用到哪个ANn,再设置哪个为模拟口。
3、FreeModbus移植代码添加后,include找不到.h文件的情况。
freemodbus代码添加到工程后,注意工程属性中,XC16的Common include dirs 需要设置。如果设置添加了所有.h文件夹的路径后,依旧在编译时提示找不到很多.h文件,可以尝试在工程属性的General中,把Source Folders中的内容全部Remove掉再编译试试。
4、部分inline属性的函数的声明,提示找不到对应实现函数的情况。
对于freemodbus源码中的inline函数,移植时发现,.c文件中可以设置inline函数属性,但在.h文件声明时,不能包含inline属性,否则会报错。
5、以上为调试遇坑,未完待续,有用记得点赞,谢谢!