怎么往串口1里写数据(不是通过串口调试助手)

2019-07-20 19:57发布

刚接触,不知道怎么往串口里面写数据。
我知道可以用printf来通过串口1来打印数据,但是printf的输出是字符串吧,我想直接用往串口里写。
我试着调用了USART_SendData(USART1,BUF[i]);
BUF是我自己想发送的数据,但是这样不可以,希望有大神来指点一下
先谢谢各位了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
yyx112358
1楼-- · 2019-07-21 01:21
USART_SendData(USART1,BUF[i]);肯定是可以的,如果你不行那就是初始化的问题
注意BUF[i]需要是ASCII码,比如USART_SendData(USART1,'1');是可以的,USART_SendData(USART1,1);就不行
zhero
2楼-- · 2019-07-21 02:56
谢谢你的回复

我在实验的时候之前一直以为是数据转换成2进制再送进移位寄存器来发出去的,昨天仔细的查了原来BUF里面的值是要发送数据的ACSII码。

我在从BUF里读取数据之后进行减‘0’的操作,就得到了发送的数据。



但是我现在又遇到了一个问题,比如我发送的是4095,但是在接收的时候有时候会读取到9540,产生这样的原因是什么呢?
xiaokun
3楼-- · 2019-07-21 08:10
USART_SendData函数应该是通过串口向外部设备发数据吧
zhero
4楼-- · 2019-07-21 10:30
 精彩回答 2  元偷偷看……
yyx112358
5楼-- · 2019-07-21 14:48
本帖最后由 yyx112358 于 2016-9-14 21:19 编辑
zhero 发表于 2016-9-14 11:21
谢谢你的回复

我在实验的时候之前一直以为是数据转换成2进制再送进移位寄存器来发出去的,昨天仔细的查 ...

可能是大小端的问题?
还是发一下你的代码吧
zhero
6楼-- · 2019-07-21 20:05
应该不是大小端的问题,我决的是接收端的数据处理的问题。


发          收
4095      4095
3056      6053
2556      5625
总是产生这样莫名的错位,很是不懂。希望可以指点下。

一周热门 更多>