485发送至电脑,串口调试助手上显示异常

2019-07-25 11:21发布

本帖最后由 hufans 于 2017-11-13 11:41 编辑

定义数组 uint8_t temp[8] = {0x02, 0x03, 0x00, 0x03, 0x00, 0x01, 0x74, 0x39};
用串口4发送 UARTSendBuf_485(&g_tUart4, temp, 8);
显示结果为:02 03 00 03 00 01 74 39 00,多出了最后一位“00”,感觉莫名其妙!
寻求大哥哥大姐姐帮助~~O(∩_∩)O~~

UARTSendBuf_485函数定义如图1:
TIM截图20171113105848.png

UARTSendBuf函数定义如图2:
TIM截图20171113105910.png

串口中断函数定义如图3:
TIM截图20171113110304.png

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
hufans
1楼-- · 2019-07-25 14:21
本帖最后由 hufans 于 2017-11-13 11:27 编辑

补充:
同样一个函数,放在另外一个地方执行,结果却不一样,显示为“02 03 00 03 00 01 74 00”,少了一个字节,且最后一位“”变成了“00”,函数定义如图: TIM截图20171113111321.png

当把显示位数由8改为9后,显示为“02 03 00 03 00 01 74 39 00”,函数修改如图:
TIM截图20171113112548.png


真是奇了怪了!项目要落后了,泪%>_<%
hufans
2楼-- · 2019-07-25 14:45
麻烦各位大哥哥大姐姐帮我看下~~~~感激不尽!
hufans
3楼-- · 2019-07-25 19:02
再补充:
在不同位置执行同一函数,编号1函数执行结果为02 03 00 03 00 01 74 39 00,
编号2函数执行结果为02 03 00 03 00 01 74 00,如图:
TIM截图20171113115251.png
正点原子
4楼-- · 2019-07-26 00:37
 精彩回答 2  元偷偷看……
正点原子
5楼-- · 2019-07-26 02:52
ziyan0005
6楼-- · 2019-07-26 08:00
建议你一个字节一个字节发,每发一个等待发送成功        USART_SendData(USART2, dat);         while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);

一周热门 更多>