单片机,UART通信问题

2025-03-22 15:55:38
推荐回答(3个)
回答1:

UART通信是ES是什么情况下被触发?
--ES是中断允许控制位,是由软件设置的,用于中断系统。
--UART通信,和ES,没有任何联系。
--触发?
--触发什么?
--触发UART通信?
--为了UART通信,事先应设置工作方式、波特率、允许接收否。
--以后,写入 SBUF,就触发了UART通信的发送功能。
--对方,送来信息,自动就触发了UART通信的接收功能。

还有定时器产生波特率是怎样影响发送数据的速度的?
--是由单片机内部电路,完成这些。

在定时器自动重装模式下,哇感觉定时器就是在不停的空循环,它怎么能决定到数据的波特率呢?
--是由单片机内部电路,完成这些。

复位后TI,RI是什么值呢?

--复位后,SP = 07H,接口P0~P3都是 FFH,其它的,都是0。
--这就是说,复位后:TI = 0、RI = 0。
--初始化,是人为编写的程序,初始化成什么,随你的便。

回答2:

单片机,串口通信, ES 是串口中断允许位,通过软件指令设置 为 1 即允许串口中断。
当单片机 接收到 数据(一个字节 )产生一次中断,在中断服务程序中 可以 将数据 保存到接收 缓冲区(需要于编程设置),波特率是为了控制 发送 与 接收 的速度(要求 发送 与 接收 的波特率要一致)实际接收 通过 定时器计数 将 系统 时钟信号 进行 分频去 触发 串口 ,以每一位 按照 一定的时间 接收,再判断 是 0 或者 是 1,接收完成 一个字节后 触发 中断标志位 产生中断,
( TI 为发送中断标志,RI 为接收中断标志,所以进入中断服务程序 需要判断 是 接收 与 发送)

回答3:

串口发送时,根据定时器产生的波特率,串口将发送移位寄存器中的数据一位一位的移到TXD端口上,并将RXD端口的电平一位一位的移到接收移位寄存器中。
定时器决定波特率的方法就是定时的方法,是通过对系统时钟计数来得到接收和发送每一位的时间,也就是波特率。
所以在串口工作的时候,用于产生波特率的定时器就不能再做定时器使用了。
大多数单片机,发送中断标志在串口空闲时是始终置位的,是否响应这个中断要看软件编程。