打印

串口如何发送接受数据

[复制链接]
2991|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
djz1992|  楼主 | 2016-2-25 08:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用串口发送和接受数据,比如我需要发一个2201234这样的数,应该怎么发?
0x22、0x01、0x23、0x04这样分开发吗?还是发字符“2201234”,还是字符串“2”、“2”、“0”、“1”、“2”、“3”、“4”?
UARTCharPut(UART0_BASE,a);        UARTCharGet(UART0_BASE);
UARTCharPutNonBlocking();UARTCharGetNonBlocking();
这几个函数有相关代码例程吗?

相关帖子

沙发
dirtwillfly| | 2016-2-25 10:58 | 只看该作者
一般每一位按一个字符发送就可以。当然,你也可以使用另外两种方式方法,具体以你定义的串口通讯协议为主,一般每位按一个字符方便点

使用特权

评论回复
板凳
aerwa| | 2016-2-25 12:57 | 只看该作者
楼上说的对,我是发ascii码,每个字节表示一位,用数组发送和接收,我觉得你还是做套这样的接口,以后ABCDEF处理也方便。

使用特权

评论回复
地板
vivilzb1985| | 2016-2-25 14:24 | 只看该作者
这个需要按照ASII码发送的啦

使用特权

评论回复
5
FireRiver9| | 2016-2-25 20:02 | 只看该作者
每位按一个字符发送

使用特权

评论回复
6
尤彼卡| | 2016-2-25 20:31 | 只看该作者
首先需要对串口初始化,配置波特率,波特率和时钟强相关。
然后就可以发送接收了,发送接收分为中断和轮询。
发送时就是向一个寄存器写入数据,mcu会自动将寄存器的数据送入发送缓冲区,mcu自动将缓冲区的数据通过tx线编程电平发送出去。
接收也是一样,外部送来的数据mcu自动转化为数字信号存放在接收缓冲区,将第一个数据依次送入接收寄存器,如果中断使能会有中断,在中断里读取接收寄存器的数据

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
djz1992 + 3 很给力!谢谢师傅
7
cemaj| | 2016-2-25 22:43 | 只看该作者
使用printf这个

使用特权

评论回复
8
cemaj| | 2016-2-25 22:44 | 只看该作者
配置成串口1就行

使用特权

评论回复
9
robter| | 2016-2-26 10:47 | 只看该作者
看你收发的目的,数字、ASCII码都可以的

使用特权

评论回复
10
309030| | 2016-2-27 21:54 | 只看该作者
关键是串口初始化,配置波特率要配置好

使用特权

评论回复
11
pmp| | 2016-2-28 23:11 | 只看该作者
这个都是自己写的程序

使用特权

评论回复
12
pmp| | 2016-2-28 23:12 | 只看该作者
或者移植别人写过的程序也行。

使用特权

评论回复
13
lihuami| | 2016-2-28 23:26 | 只看该作者
这个自带的例程有的。

使用特权

评论回复
14
cehuafan| | 2016-2-29 11:15 | 只看该作者
应该是发送字符串

使用特权

评论回复
15
cehuafan| | 2016-2-29 11:15 | 只看该作者
asicII码才能接收到你要的效果。

使用特权

评论回复
16
cehuafan| | 2016-2-29 11:18 | 只看该作者
printf(’222222‘);

使用特权

评论回复
17
djz1992|  楼主 | 2016-2-29 13:22 | 只看该作者
cehuafan 发表于 2016-2-29 11:18
printf(’222222‘);

我现在有四个串口都需要使用,用printf来写,怎么来确定用哪个串口发出去呢?

使用特权

评论回复
18
djz1992|  楼主 | 2016-2-29 13:26 | 只看该作者
尤彼卡 发表于 2016-2-25 20:31
首先需要对串口初始化,配置波特率,波特率和时钟强相关。
然后就可以发送接收了,发送接收分为中断和轮询 ...

数据缓冲区可以存多少数据呢?如果我用查询语句在main里查询是否有接收数据,来数据的时候程序正在别的地方,寄存器的数据会不会还没接收就被新的数据覆盖掉?
听师傅你的原文“外部送来的数据mcu自动转化为数字信号存放在接收缓冲区,将第一个数据依次送入接收寄存器”,是不是指第一个数据不接收,后面的数据都会保存在缓冲区?不会有丢失是吗

使用特权

评论回复
19
djz1992|  楼主 | 2016-2-29 13:29 | 只看该作者
aerwa 发表于 2016-2-25 12:57
楼上说的对,我是发ascii码,每个字节表示一位,用数组发送和接收,我觉得你还是做套这样的接口,以后ABCDE ...

用ASCII该怎么写?0发送就写0x30吗?

使用特权

评论回复
20
10299823| | 2016-2-29 16:50 | 只看该作者
这个看你的个人习惯了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

115

主题

620

帖子

5

粉丝