0

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

4

1 回答 1

1

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

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

解决了这个问题。尽管这仍然没有解决调试器和SPBRGHP图标中不可更改的谜团,但这是其他问题的主题。SPBRGL

于 2015-07-27T10:47:21.507 回答