首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UART PIC24 -接收连续的ASCII字符流

UART PIC24 -接收连续的ASCII字符流
EN

Stack Overflow用户
提问于 2019-09-10 17:02:11
回答 1查看 262关注 0票数 0

我目前正在使用带通用异步收发器的PIC24,能够接收(Rx)和发送(Tx)字符。当尝试接收连续的字符流时,在开始位和停止位之间没有延迟时,问题就出现了。

UART设置为:7个数据位、1个奇偶校验位和1个1200波特率停止位

当在终端上显示接收到的字符时,它显示只有某些字符才能正确打印。我不认为这是一个波特率错误,因为我能够正确地接收和打印字符时,开始和停止位之间的小延迟,即按住键盘上的一个键。

为了读取连续发送的两个字符,我执行以下操作。

代码语言:javascript
复制
char buf[512];

while (U2STAbits.URXDA == 0); //wait while Rx buffer is full 
buf[0] = U2RXREG;

while (U2STAbits.URXDA == 0); //wait while Rx buffer is full 
buf[1] = U2RXREG;


while (U2STAbits.UTXBF); //wait while Tx Bit not free
U2TXREG = buf[0];

while (U2STAbits.UTXBF); //wait while Tx Bit not free
U2TXREG = buf[1];
EN

回答 1

Stack Overflow用户

发布于 2019-09-11 14:18:35

可能还有其他我们看不到的问题,因为你只给了我们一小部分代码。

无论如何,在你的评论中有额外的信息,它在奇偶校验中是不匹配的:

字符接收正常:

代码语言:javascript
复制
char  code  binary    # of 1-bits
'A'   0x41  01000001  2 = even
'f'   0x66  01100110  4 = even
'?'   0x3f  00111111  6 = even

未收到字符:

代码语言:javascript
复制
char  code  binary    # of 1-bits
'a'   0x61  01100001  3 = odd
'b'   0x62  01100010  3 = odd
'1'   0x31  00110001  3 = odd

请在下一次,不要在评论中添加额外的信息,而是编辑您的问题。这样一来,所有的访问者都有了所有的信息,而不必费力地阅读所有的评论。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57867380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档