完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1:什么是串口
数据的传输有并口传输和串口传输. 并行传输:一次传输8位数据,传输数据快,但浪费io口资源. 串行传输:一位一位传输节省传输线,串行通信适合于远距离传送 串口通信协议: 串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485
如图:分别是单工,半双工,全双工. UART串口协议: 串行通信可以分为:异步传送和同步传送 通用异步收发器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种串行、异步、全双工的通信协议,在嵌入式领域应用的非常广泛 UART作为异步串行通信协议的一种,工作原理是将传输数据的每个二进制位一位接一位地传输。在UART通信协议中信号线上的状态为高电平时代表‘1’,信号线上的状态为低电平时代表‘0’。比如使用UART通信协议进行一个字节数据的传输时就是在信号线上产生八个高低电平的组合。 2.波特率 串口通信的数据传送速率称为波特率(Baud rate),是指每秒钟传送二进制数码的位数,单位是bps(bit per second),即位/秒3.51单片机的串口 与51单片机串行相关的SFR特殊寄存器:
例如要设置9600的波特率方式1中: 利用上面公式能算出TH1要=0xFD. 在串口通信的程序设计中,主要有串口初始化和数据收发两个部分。 在初始化函数中,基本步骤如下: <1> 设置定时器1的工作模式,也就是对TMOD寄存器赋值。 <2> 计算波特率参数,并赋值给TH1和TL1寄存器。 <3> 打开定时器1。 如果使用的是STC 12系统单片机,则要设置AUXR寄存器。 <4> 设置SCON寄存器。 <5> 使能串口中断ES。 <6> 使能总中断EA。 数据的发送通常采用查询方式,而数据的接收则采用中断方式 从图中可得知,当发一个数据给SBUF时RI会置1跳到串口中断,需要在软件中清0.也就是SBUF得到一个接受的指令相当于一个变量 dat,我将这个变量赋值给SBUF:dat=SBUF这就是数据的接收, SBUF中的数据是dat传送的SBUF接收了dat的数据, 相反而言当把SBUF的值送出去TI就会置1会去串口中断,需要软件清0,想当SBUF=dat;把SBUF发送出去,也就是SBUF在前面就是发送在后面就是接收.发送和接收都会跳转到串口中断. 在单片机串口中用定时器1的工作2模式8位定时重装的功能来产生波特率,且在IE寄存器中有控制串口中断的ES. 不管需要写什么程序,串口的初始化都是差不多的. |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2956 浏览 16 评论
3458 浏览 1 评论
9002 浏览 16 评论
4051 浏览 18 评论
1110浏览 3评论
572浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
569浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2302浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1859浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 00:17 , Processed in 1.186598 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号