本帖最后由 endata123 于 2020-2-15 23:11 编辑
先说下我的开发环境 MPLAB IDE V8.91+PICC 9.83
这两天做PIC16F1503 的I2C通讯程序,用的是主模式。一直调不通,具体表现在启动I2C后(SEN=1),就死在了while(SEN)里面,不能够硬件自动清零,郁闷了两天后终于找到问题的原因:
是系统头文件里宏定义的SSP模块地址有误,数据手册 SSP1CON1地址是0x215,下面是pic16f1503.h头文件中关于SSP1CON1的定义,地址0x211,后面SSP1CON2及后续部分寄存器地址也是整体偏移了,限于篇幅,就不贴上来了
找到了原因就好办了,前车之鉴,这次IIC相关函数用汇编写了,终于解决了,瞬间世界安静了。
如有错误,请大家指正
|