OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3578|回复: 1

串口发送数据不成功

[复制链接]

6

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2015-5-16
在线时间
0 小时
发表于 2015-6-3 12:23:33 | 显示全部楼层 |阅读模式
5金钱
我用串口发送数据,在虚拟串口软件中把电脑的串口1和串口2连到了一起,在keil中把电脑的串口2和单片机的串口1进行了绑定然后运行程序,用串口调试助手查看串口1的状态,可是出现的都是乱码,不知道为什么呀
定义的数据串例如:  char str0[8]={0xA5,0x5A,0x05,0x82,0x00,0x60,0x00,0x01};
因为要发送很多次数据,所以我把串口发送数据的程序封装成了下面这个函数,每次使用调用一下
void SEND_1(char *stra)
  {
     u8 i;
     for(i=0;i<strlen(stra);i++)
    {
        USART1->DR=stra;
        while((USART1->SR&0X40)==0);
     }
  }

主程序中发送str0:
SEND_1(str0);
我的程序有问题吗?如果没有问题可能是哪些地方出错了呢?我把我的工程放在附件中了,大家有时间的话帮我看一下,感激不尽!

TEST.zip

517.64 KB, 下载次数: 24

最佳答案

查看完整内容[请看2#楼]

你这输出的是十六进制数据,而不是ascii,你要以hex显示,应该可以收到数据。 另外,你的str0里面有0X00这样的数据,所以后面的0X60,0X00,0X01是发送不出去了。 建议不要用strlen。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-6-3 12:23:34 | 显示全部楼层
你这输出的是十六进制数据,而不是ascii,你要以hex显示,应该可以收到数据。
另外,你的str0里面有0X00这样的数据,所以后面的0X60,0X00,0X01是发送不出去了。
建议不要用strlen。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 15:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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