OpenEdv-开源电子网

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

求助原子哥和大神,关于串口发送USART_SendData和printf的问题?

[复制链接]

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2014-5-7
在线时间
0 小时
发表于 2015-3-23 16:51:16 | 显示全部楼层 |阅读模式
5金钱
我使用串口调试助手向串口一发送数据,接收在缓冲区,再通过串口2 发送显示在(串口2的)串口调试助手上面,使用USART_SendData不正确,使用printf没有问题,请问这是什么原因???


u16 count = 0;
for (count = 0; count < Len; count++)
    printf("%x\r\n", *(data+count)); 
//{
//while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
//   USART_SendData(USARTx, *(data+count)); 
//}
//while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-23 16:55:47 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2014-5-7
在线时间
0 小时
 楼主| 发表于 2015-3-23 16:57:48 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
USART_SendData可以发送超过127的数么,显示出来是否正确?
回复

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2015-3-23 17:58:15 | 显示全部楼层
回复【3楼】青玉更落星雨:
---------------------------------
两个发送是不一样的,一个发送的是16进制字符,另一个发送的是纯字节。
站在巨人的肩膀上不断的前进。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-23 19:01:02 | 显示全部楼层
回复【3楼】青玉更落星雨:
---------------------------------
0~255都可以,显示不显示,看你的串口助手设置。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2014-5-7
在线时间
0 小时
 楼主| 发表于 2015-3-24 09:24:20 | 显示全部楼层
回复【4楼】xiaoyan:
---------------------------------
回复【5楼】正点原子:
---------------------------------
printf和USART_SendData是不是不能混用,会出错,貌似我把所有的printf屏蔽掉之后,就好了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-24 23:27:47 | 显示全部楼层
回复【6楼】青玉更落星雨:
---------------------------------
可以的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2017-10-7
在线时间
11 小时
发表于 2017-11-13 14:25:32 | 显示全部楼层
xiaoyan 发表于 2015-3-23 17:58
回复【3楼】青玉更落星雨:
---------------------------------
两个发送是不一样的,一个发送的是16进制字 ...

正解,,,,,,
回复

使用道具 举报

31

主题

176

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
400
金钱
400
注册时间
2015-10-16
在线时间
85 小时
发表于 2017-11-15 17:03:25 | 显示全部楼层
你把while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET); 和  USART_SendData(USARTx, *(data+count));前后换一下试试
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2019-7-1
在线时间
8 小时
发表于 2019-7-8 11:26:45 | 显示全部楼层
解决了吗?
printf("11111");
      USART_SendData(USART1, 1);//向串口1发送数据
                        USART_SendData(USART1, 2);//向串口1发送数据
                        USART_SendData(USART1, 3);//向串口1发送数据
                        USART_SendData(USART1, 4);//向串口1发送数据
                        USART_SendData(USART1, 5);//向串口1发送数据

这个是串口打印的信息1111111111111111111111111111

printf()函数可以正常使用,USART_SendData()发送数据就会出错
为什么?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 13:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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