PIC16F1823波特率发生器寄存器无法设置

时间:2015-07-27 06:46:28

标签: pic uart mplab baud-rate

我遇到了一个奇怪的问题:我只想通过向SPBRGHSPBRGL写入一些值来在MPLABX中设置PIC16F1823上的UART波特率。在看到UART通信确实不起作用之后,我检查了调试器,寄存器在写入后没有改变值(它们相应地保持在152和48)。我进行了很多实验并发现,实际GETS设置为SP1BRGHSP1BRGL 注册,但命名错误 - 该图片仅配备了一个UART,除数据表中的命名为SPBRGHSPBRGL 。另一个症状是,在 watch 窗口中,SPBRG*变量旁边的菱形图标里面有 P ,而下一个至SP1BRG*否 - 我无法找到P的含义。你觉得这是某种bug吗?代码是如此简单,以至于我无法让自己思考。如果是这样,那么神秘的 152 48 值会是什么?

1 个答案:

答案 0 :(得分:1)

愚蠢的错误,浪费了很多时间(这种问题必须得到一些名字,我投票给SMMTL)。我没有注意到我使用的特定PIC上的引脚具有可设置的备用功能,而且默认的功能分配不是我使用的那个。我错误地估计了原因并且

APFCONbits.RXDTSEL = 1; //RA1
APFCONbits.TXCKSEL = 1; //RA0

解决了这个问题。 ALTHOUGH 这仍然无法解决调试器中不可更改的SPBRGHSPBRGL以及 P 图标的错误,但这是一个主题其他问题。