gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 14:36:44 25 4
gpt4 key购买 nike

我目前正在使用带 UART 的 PIC24,并且能够接收 (Rx) 和发送 (Tx) 字符。当尝试接收连续的字符流时就会出现问题,其中起始位和停止位之间没有延迟。

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

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

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

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];

最佳答案

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

无论如何,根据您评论中的附加信息,奇偶校验不匹配:

角色收到罚款:

char  code  binary    # of 1-bits
'A' 0x41 01000001 2 = even
'f' 0x66 01100110 4 = even
'?' 0x3f 00111111 6 = even

未收到字符:

char  code  binary    # of 1-bits
'a' 0x61 01100001 3 = odd
'b' 0x62 01100010 3 = odd
'1' 0x31 00110001 3 = odd

请下次不要在评论中添加额外信息,而是编辑您的问题。这样,所有访问者都可以将所有内容集中在一起,而无需费力浏览所有评论。

关于c - UART PIC24 - 接收连续的 ASCII 字符流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57867380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com