野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 251|回复: 5

求助帖—火哥指南者光盘程序串口收发实验

[复制链接]
发表于 2024-10-20 11:06:23 | 显示全部楼层 |阅读模式
跑的程序是指南者实例代码,如图所示。在SendByte函数中发送一个字节数据0x41,调试助手中接收区和发送区都勾选上以ASCII码形式输出,为啥烧录后接收区会直接出现三个字符A,之后按板子上的复位会正常出现1个A,,迷惑的点就在于程序中只是发送一个字节,而烧录后调试助手中显示接收三个字节,还请大佬指教
0fb18d7456de56349148e63daf6faa9.png
0ab1e9a330a3110ceb9f871b3ae679d.png
回复

使用道具 举报

 楼主| 发表于 2024-10-20 13:13:20 | 显示全部楼层
图片中接收字节显示6,是因为我在烧录前没有清空计数,我试着在主程序中写一个while循环,让其执行SendData(USART1,0x41);10次,然后烧录,同样的,调试助手接收区会显示接收到30个字节数据,仿佛是将程序执行了3遍
回复 支持 反对

使用道具 举报

发表于 2024-10-22 16:28:45 | 显示全部楼层
用hex显示看看
野火论坛202410221628447417..png
回复 支持 反对

使用道具 举报

 楼主| 发表于 7 天前 | 显示全部楼层

试了,不行;主程序里发送的数据是0X41,在printf函数中输出的格式为%x,下载后在调试助手中先设置HEX模式,输出为:30 78 32 30 09 30 78 32 30 09 30 78 32 30 09,之后我又设置ASCII模式输出是0x41 0x41 0x41;
原本相传图片的,但这会不知道是不是网站原因,没法上传
回复 支持 反对

使用道具 举报

发表于 6 天前 | 显示全部楼层
没看懂你说什么,就你前面发图片的,发送程序上发0x41,显示A的,就是ascll显示的问题,0x41的ascll就是A
回复 支持 反对

使用道具 举报

发表于 昨天 17:17 | 显示全部楼层
我个人理解
1.你正常运行软件会正常打印一次
2.你点击烧录会reset芯片,此时会进行打印一次
3.烧录软件结束后,一般都会复位再次运行程序,再打印一次
而点击复位不存在这个问题,一次复位运行一次
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-1 09:20 , Processed in 0.110992 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表