匿名
未登录
登录
丢石头百科
搜索
查看“STM8 UART 接收器”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
STM8 UART 接收器
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
STM8 UART 接受器 UART可以接收8位或9位的数据字。如果M位置1,字长为9位,其中MSB存放在寄存器UART_CR1的R8位。 字符接收 在UART接收期间,数据的最低有效位首先从RX脚移进。在此模式里,UART_DR寄存器有一个缓冲器(TDR),位于内部总线和接收移位寄存器之间。 配置步骤: 1.编程UART_CR1的M位来定义字长。 2.在UART_CR3中编程停止位的位数。 3.按下列顺序编写波特率寄存器选择要求的波特率。 a) UART_BRR2 b) UART_BRR1 4.将UART_CR2的REN置1。这将激活接收器,使它开始寻找起始位。 当一字符被接收到时* RXNE位被置位。它表明移位寄存的内容被转移到RDR。<li>如RIEN位被设置,则产生中断。 </li>* 在接收期间如果检测到帧错误,噪音或溢出错误,错误标志将被置起。<li>由软件读UART_DR寄存器完成对RXNE位清除。RXNE标志也可以通过对它写0来清除。 RXNE位必须在下一字符接收结束前被清零,以避免溢出错误。 注意:在接收数据时,RE位不应该被复位。如果RE位在接收时被清零,当前接收的字节会丢失。 </li> 断开符号 当STM8接收到一个断开帧时,UART像处理帧错误一样处理它。 空闲符号 当一空闲帧被检测到时,其处理步骤和接收到普通数据帧一样,但如果ILIEN位被置1将产生一个中断。 过载错误 如果RXNE还没有被复位,又接收到一个字符,则发生溢出错误。数据只有当RXNE位被清零后才能从移位寄存器转移到RDR寄存器。 当溢出错误产生时:<li>OR位被置位。 </li>* RDR内容将不会丢失。读UART_DR寄存器仍能得到先前的数据。<li>移位寄存器中以前的内容将被覆盖。随后接收到的数据都将丢失。 </li><li>如果RIEN位被置1,则产生中断。 </li><li>顺序执行对UART_SR和UART_DR寄存器的读操作,可复位OR位 </li> 噪音错误 使用过采样技术(同步模式除外),通过区别有效输入数据和噪音来进行数据恢复。 [[File:STM8_P278_1.jpg]] (图103:STM8检测噪声的数据采样图) 注意:采样频率是波特率的16倍。 [[File:STM8_P278_2.jpg]] (表47:STM8检测噪声的数据采样表) 当在接收帧中检测到噪音时:* NF在RXNE位的上升沿被置1。<li>无效数据从移位寄存器移送到UART_DR寄存器。 NF这个位和RXNE位同时置1,后者会引发中断。顺序执行对UART_SR和UART_DR寄存器的读操作,可复位NF位。</li> 帧错误 当以下情况发生时检测到帧错误: 由有大有在的时和于没同步上或量噪音的原因,停止位没预期间上接收识别出来。 误当帧错被检测到时:* 1位被硬件置FE* 无效数据从移位寄存器传送到UART_DR寄存器。<li>在单字节通信时,没有中断产生。然而,这个位和RXNE位同时置1,后者将引发中断 。 顺序执行对UART_SR和UART_DR寄存器的读操作,可复位FE位。</li> 间止位接收期的可配置的停 被接收的停止位的个数可以通过控制寄存器3的控制位来配置。在正常模式时,可以是1或2个,IrDA模式里是1个,在智能卡模式里是1.5个。* 1个停止位:对1个停止位的采样在第8,第9和第10采样点上进行。<li>1.5个停止位(仅智能卡模式):对1.5个停止位的采样是在第16,第17和第18采样点进行的。 能卡会在采样时拉低数据线,以此表示出现了帧错误。FE在1.5个停接收到NACK信号的智 位结束时和RXNE一起被置1。</li>* 2个停止位:对2个停止位的采样是在第一停止位的第8,第9和第10个采样点完成的。如果第一个停止位期间检测到一个帧错误,帧错误标志将被置1。第二个停止位不再检查帧错误。在第一个停止位结束时RXNE标志将被置1。
返回至
STM8 UART 接收器
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志