立即注册 找回密码

微雪课堂

搜索
微雪课堂 STM8 STM8单片机内核剖析 查看内容

STM8 UART 发送器

2015-7-13 11:36| 发布者: kaloha| 查看: 5349| 评论: 0

摘要: STM8 UART 发送器发送器根据M位的状态发送8位或9位的数据字。当M位置1,字长为9位,并且第九位(MSB)应该写入寄存器UART_CR1的T8位。当发送使能位(TE)被设置时,发送移位寄存器中的数据在TX脚上输出,相应的时钟脉冲 ...

STM8 UART 发送器

发送器根据M位的状态发送8位或9位的数据字。当M位置1,字长为9位,并且第九位(MSB)应该写入寄存器UART_CR1的T8位。
当发送使能位(TE)被设置时,发送移位寄存器中的数据在TX脚上输出,相应的时钟脉冲在SCLK脚上输出。

字符发送
在UART发送期间,在TX引脚上首先移出数据的最低有效位。在此模式里,UART_DR寄存器有一个缓冲器(TDR),位于内部总线和发送移位寄存器之间。
每个字符之前都有一个低电平的起始位;之后跟着数目可配置的停止位。UART支持以下停止位。
注意:
1.在数据传输期间不能复位TE位,否则将破坏TX脚上的数据,因为波特率计数器停止计数。 正在传输的当前数据将丢失。
2.TE位被激活后将发送一个空闲帧。

可配置的停止位
随每个字符发送的停止位的位数可以通过控制寄存器3的位5、4进行编程。

  • 1个停止位:停止位位数的默认值。
  • 2个停止位:可用于常规UART模式。
  • 1.5个停止位:仅在智能卡模式下使用。 
    空闲帧包括了停止位。
    断开帧是10位低电平,后跟停止位(当m=0时);或者11位低电平,后跟停止位(m=1时)。不可能传输更长的断开帧(长度大于10或者11位)。 

STM8_配置停止位
(图103:STM8配置停止位)

配置步骤:
1.编程UART_CR1的M位来定义字长。
2.在UART_CR3中编程停止位的位数。
3.按下列顺序编写波特率寄存器选择要求的波特率。
a) UART_BRR2
b) UART_BRR1
4.设置UART_CR2中的TE位来使能发送模式。
5.把要发送的数据写进UART_DR寄存器(此动作清除TXE位)。在只有一个缓冲器的情况下,对每个待发送的数据重复此步骤。

单字节通信
清零TXE位总是通过对数据寄存器的写操作来完成的。TXE位由硬件来置1,它表明:

  • 数据已经从TDR移送到移位寄存器,数据发送已经开始
  • TDR寄存器为空
  • 下一个数据可以被写进UART_DR寄存器而不会覆盖先前的数据

如果TIEN位被设置,此标志将产生一个中断。
如果此时UART正在发送数据,对UART_DR寄存器的写操作把数据存进TDR寄存器,并在当前传输结束时把该数据复制进移位寄存器。
如果此时UART没有在发送数据,处于空闲状态,对UART_DR寄存器的写操作直接把数据放进移位寄存器,数据传输开始,TXE位立即被置起。
当一帧发送完成时(停止位发送后),TC位被置起,并且如果UART_CR1寄存器中的TCIE位被置起时,中断产生。按以下步骤对TC位的清零。
1.读UART_SR寄存器
2.写UART_DR寄存器

断开符号
设置SBK可发送一个断开符号。断开帧长度取决M位。
如果设置SBK=1,在完成当前数据发送后,将在UART_TX线上发送一个断开符号。断开字符发送完成时(在断开符号的停止位时)SBK被硬件复位。UART在最后一个断开帧的结束处插入一逻辑'1',以保证能识别下一帧的起始位。

注意:发送的断开帧是不计入停止位位数的。如果设置UART为2个停止位,Tx线路会被拉低直到第一个停止位发送结束。之后在第二个字符前插入2个逻辑1。 
注意:如果在开始发送断开帧之前,软件又复位了SBK位,断开符号将不被发送。如果要发送两个连续的断开帧,SBK位应该在前一个断开符号的停止位之后置1。

空闲符号
TEN置位将使得UART在第一个数据帧前发送一空闲帧。

以上资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!


392

顶一下

刚表态过的朋友 (392 人)

最新评论

所有教程
    01STM8 CPU
    简介STM8S是基于8位框架结构的微控制器,其CPU内核有6个内部寄存器,通过这些寄存器可
    02STM8 CPU寄存器映射
    CPU寄存器在STM8的地址空间映射如表2所示。只有CPU的调试模块才可以使用这些寄存器的
    03STM8 全局配置寄存器(CFG_GCR)
    激活级别用户可通过对CFG_GCR寄存器中的AL位编程来配置MCU的激活级别。如何使用该位请
    04STM8 用于系统启动的只读存储器
    在某些STM8型号中有2K字节的内部BOOT ROM,其中包含有用于启动的代码。这段代码的主
    05STM8 存储器和寄存器映射
    要了解关于STM8存储器映射、I/O端口硬件寄存器映射以及CPU/SWIM/调试模块/中断控制寄
    06STM8 FLASH主要特性
    STM8内部的FLASH程序存储器和数据EEPROM由一组通用寄存器来控制。用户可以使用这些寄
    07STM8 存储器组织结构
    STM8S的EEPROM以32位字长(每字4字节)为基础组织起来。根据不同的器件,存储器组织机
    08STM8 用户启动区域(UBC)
    用户启动区域(UBC)包含有复位和中断向量表,它可用于存储IAP及通讯程序。UBC有一个两
    09STM8 存储器保护
    读保护当选项字节中的ROP字节被编程为'0xAA'时,读保护就生效了。这种情况下,无论写
    010STM8 读同时写(RWW)
    RWW特性允许用户在执行程序和读程序存储器时对DATA EEPROM区域进行写操作,因此执行的
    011STM8 ICP和IAP
    在线编程(ICP)用于更新STM8整个存储器的内容。ICP使用SWIM接口把用户的程序装载到微控
    012STM8 FLASH寄存器
    FLASH控制寄存器1(FLASH_CR1)地址偏移值:0x00复位值:0x00位7:4保留位,必须保持为0
    013STM8 单线接口模块(SWIM)和调试模块(DM)
    介绍STM8在线调试模式或在应用编程模式由一个单线硬件接口来管理,该接口拥有对存储器
    014STM8 供电电源
    STM8 MCU有四种相对独立的供电电源:VDD/VSS:主电源(3V到5.5V)VDDIO/VSSIO:I/O口供
    015STM8 复位
    STM8S共有9个复位源:NRST引脚产生的外部复位上电复位(POR)掉电复位(BOR)独立看门狗复
    016STM8 复位(RST)寄存器
    复位状态寄存器(RST_SR)地址偏移值:0x00复位值:未定义位7:5保留位,必须保持为0位4E
    017STM8 复位寄存器地址映射
    复位状态寄存器(RST_SR)请参考对应的数据手册了解基地址信息。(表7:STM8复位寄存器地
    018STM8 时钟控制
    时钟控制器功能强大而且灵活易用。其目的在于使用户在获得最好性能的同时,亦能保证消
    019STM8 主时钟源
    下面4种时钟源可用做主时钟:1-24MHz高速外部晶体振荡器(HSE)最大24MHz高速外部时钟信
    020STM8 主时钟切换
    时钟切换功能为STM8用户提供了一种易用、快速、安全的从一个时钟源切换到另一个时钟源
    021STM8 外设时钟门控
    关闭未使用外设的时钟可使STM8降低功耗。外设的时钟门控(PCG)模式使用户可在运行模式
    022STM8 时钟安全系统(CSS)
    时钟安全系统用于监控HSE时钟源是否失效。当fMASTER使用HSE做为时钟源时,如果HSE时钟
    023STM8 时钟输出功能(CCO)
    可配置的时钟输出功能使STM8用户可在外部管脚CCO上输出指定的时钟。STM8S的用户可选择
    024STM8 时钟中断
    当下列事件发生时,时钟控制器可产生中断:主时钟源切换事件CSS事件这两个中断均可被
    025STM8 内/外部时钟寄存器
    STM8内部时钟寄存器(CLK_ICKR)地址偏移值:0x00复位值:0x01位7:6保留位,始终为0位5R
    026STM8 主时钟状态寄存器
    STM8主时钟状态寄存器(CLK_CMSR)地址偏移值:0x03复位值:0xE1位7:0CKM:主时钟状态位
    027STM8 时钟分频寄存器
    STM8时钟分频寄存器(CLK_CKDIVR)地址偏移值:0x06复位值:0x18位7:5保留。始终为0。位
    028STM8 外设时钟门控寄存器
    STM8外设时钟门控寄存器(CLK_PCKENR1)地址偏移值:0x07复位值:0xFF位7:0PCKEN1:外设
    029STM8 时钟安全系统寄存器
    STM8时钟安全系统寄存器(CLK_CSSR)地址偏移值:0x08复位值:0x00位7:4保留。始终为0。
    030STM8 可配置时钟输出寄存器
    STM8可配置时钟输出寄存器地址偏移值:0x09复位值:0x00位7保留。始终为0。位6CCOBSY
    031STM8 CAN外部时钟控制寄存器
    STM8 CAN外部时钟控制寄存器(CLK_CANCCR)地址偏移值:0x0B复位值:0x00位7:3保留。始
    032STM8 HSI时钟修正寄存器
    STM8 HSI时钟修正寄存器(CLK_HSITRIMR)地址偏移值:0x0C复位值:未定义位7:4保留。始
    033STM8 SWIM时钟控制寄存器
    STM8 SWIM时钟控制寄存器(CLK_SWIMCCR)地址偏移值:0x0D复位值:未定义位7:1保留。始
    034STM8 电源管理
    STM8电源管理默认情况下在系统或电源复位后,MCU处于运行模式。在这种模式下,CPU由fC
    035STM8 低功耗的时钟管理
    STM8降低系统时钟在运行模式,为了即能满足系统性能又能降低功耗,选择合适的系统时钟
    036STM8 低功耗模式
    四种STM8低功耗模式的主要特性如表12。(表12:STM8S低功耗模式管理)1.如果外设时钟未
    037STM8 模拟功耗控制
    STM8停机模式下的快速内存唤醒默认情况下,微控制器进入停机模式后FLASH是处于掉电状
    038STM8 中断控制器(ITC)
    STM8中断控制器简介中断控制器提供如下功能:硬件中断的管理所有I/O引脚都具有外部中
    039STM8 中断屏蔽和处理流程
    STM8 中断屏蔽和处理流程中断屏蔽是通过CC寄存器的位I1和位I0以及设置每个中断向量(表
    040STM8 中断源
    STM8 中断源STM8中断控制器处理2种类型的中断源:不可屏蔽的中断:RESET,TLI和TRAP可
    041STM8 中断和低功耗模式
    STM8 中断和低功耗模式所有的中断都可以使处理器从待机模式(Wait)退出。仅有外部中断
    042STM8 同时的和嵌套的中断管理
    STM8S提供2种中断管理模式:同时发生模式嵌套模式STM8同时发生中断管理模式在该模式下
    043STM8 中断指令
    STM8 中断指令表15列出了中断指令:(表15:STM8中断指令)
    044STM8 中断映射
    STM8中断映射下面表格列出了中断映射:(表16:STM8中断映射)
    045STM8 自动唤醒(AWU)
    简介AWU是用来当MCU进入低功耗的活跃停机(Active Halt)模式时提供一个内部的唤醒时间
    046STM8 AWU寄存器
    控制/状态寄存器(AWU_CSR)地址偏移值:0x00复位值:0x00位7:6保留位,必须保持为0位5W
    047STM8 蜂鸣器
    简介当LS时钟工作在128kHz时可产生频率为1kHz,2 kHz或者是4 kHz的蜂鸣信号。(图23:ST
    048STM8 独立看门狗(IWDG)
    STM8独立看门狗介绍独立看门狗模块可以用于解决处理器因为硬件或软件的故障所发生的错
    049STM8 通用输入输出口(GPIO)
    简介STM8的通用输入/输出口用于芯片和外部进行数据传输。一个IO端口可以包括多达8个引
    050STM8 窗口看门狗(WWDG)
    STM8窗口看门狗介绍窗口看门狗用于监测由于外部干扰或不可预知的逻辑条件所产生的软件
    051STM8 主时钟状态寄存器
    STM8主时钟状态寄存器(CLK_CMSR)STM8S提供三种类型的TIM定时器:高级控制型(TIM1)、通
    052STM8 16位高级控制定时器(TIM1)
    16位高级控制定时器(TIM1)简介STM8S的TIM1由一个16位的自动装载计数器组成,它由一个
    053STM8 时基单元
    STM8时基单元时基单元包含:16位向上/向下计数器16位自动重载寄存器重复计数器预分频
    054STM8 时钟/触发控制器
    STM8时钟/触发控制器时钟/触发控制器允许用户选择计数器的时钟源,输入触发信号和输出
    055STM8 触发同步
    STM8触发同步计数器允许四种触发输入ETRTI1TI2来自TIM5/TIM6的TRGOTIM1的计数器使用三
    056STM8 PWM模式
    STM8 PWM模式STM8的脉冲宽度调制(PWM)模式可以产生一个由TIM1_ARR寄存器确定频率、由T
    057STM8 针对马达控制的六步PWM输出
    STM8针对马达控制的六步PWM输出当在一个通道上需要互补输出时,预装载位有OCiM、CCiE
    058STM8 刹车功能 马达控制
    STM8 刹车功能STM8刹车功能常用于马达控制中。当使用刹车功能时,依据相应的控制位(TI
    059STM8 中断
    STM8 TIM1中断TIM1有8个中断请求源,分别映射到2个中断矢量上:刹车中断触发中断COM事
    060STM8 16位通用定时器(TIM2,TIM3,TIM5)
    介绍本章介绍了STM8通用定时器TIM2,TIM3和TIM5,其中TIM2有3个通道,TIM3有2个通道,
    061STM8 8位基本定时器(TIM4,TIM6)
    介绍该定时器由的8可位自动重载的向上计数器所组成,它可以用来作为时基发生器,具有
    062STM8 SPI简介 主要特征
    SPI简介串行外设接口(SPI)允许芯片与其他设备以半/全双工、同步、串行方式通信。此接
    063STM8 SPI从模式
    STM8 SPI从模式在从配置里,SCK引脚用于接收到从主设备来的串行时钟。SPI_CR1寄存器中
    064STM8 SPI主模式
    STM8 SPI主模式在主配置时,串行时钟在SCK脚产生。置配步骤1.通过SPI_CR1寄存器的BR位
    065STM8 单工通信
    STM8 单工通信SPI能够以两种配置工作于单工方式:1条时钟线和1条双向数据线1条时钟线
    066STM8 SPI状态标志
    STM8 SPI状态标志应用程序通过3个状态标志可以完全监控SPI总线的状态。总线忙(Busy)标
    067STM8 CRC计算
    STM8 CRC计算CRC校验仅用于保证通信的可靠性。数据发送和数据接收分别使用单独的CRC计
    068STM8 I2C接口主要特点
    STM8 I2C接口I2C(芯片间)总线接口连接微控制器和串行I2C总线。它提供多主功能,控制所
    069STM8 I2C从模式
    STM8 I2C从模式为了产生正确的时序,必须在I2C_FREQR寄存器中设定该模块的输入时钟。
    070STM8 I2C主模式
    STM8 I2C主模式在主模式时,I C接口启动数据传输并产生时钟信号。串行数据传输总是以
    071STM8 通用异步收发器(UART)
    STM8 UART介绍STM8S微控制器家族的通用同步异步收发器(UART1,UART2或UART3)提供了一
    072STM8 UART 发送器
    STM8 UART 发送器发送器根据M位的状态发送8位或9位的数据字。当M位置1,字长为9位,并
    073STM8 UART 接收器
    STM8 UART 接受器UART可以接收8位或9位的数据字。如果M位置1,字长为9位,其中MSB存放
    074STM8 多处理器通信
    STM8 多处理器通信通过UART可以实现多处理器通信(将几个UART连在一个网络里)。例如某
    075STM8 单线半双工通信
    STM8 单线半双工通信UART可以配置成遵循单线半双工协议。单线半双工模式通过设置UART_
    076STM8 智能卡
    STM8智能卡设置UART_CR5寄存器的SCEN位选择智能卡模式。在智能卡模式下,下列位必须保
    077STM8 IrDA红外功能
    STM8 IrDA红外功能通过设置UART_CR5寄存器的IREN位选择IrDA模式。UART_CR3寄存器的STO
    078STM8 LIN主模式
    STM8 LIN模式功能描述在LIN模式下,LIN标准要求的数据格式是8位数据位加1位停止位。完
    079STM8 控制器局域网(beCAN)
    STM8控制器局域网(beCAN)简介beCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持C
    080STM8 beCAN工作模式
    STM8 beCAN工作模式beCAN有3个主要的工作模式:初始化模式、正常模式和睡眠模式。 在
    081STM8 模拟/数字转换器(ADC)
    STM8模拟/数字转换器(ADC)简介ADC1和ADC2是10位的逐次比较型模拟数字转换器。提供多达
    082STM8 模拟/数字转换器(ADC) 转换模式
    STM8模拟/数字转换器(ADC)转换模式ADC支持5种转换模式:单次模式,连续模式,带缓存的
    083STM8 模拟看门狗
    STM8模拟看门狗在单次转换模式和不带缓存的连续模式中模拟看门狗可以通过置位ADC_CSR
    084STM8 ADC时序图
    STM8 ADC时序图如图149所示,在ADC上电后,在开始精确转换之前ADC需要一个稳定时间tST
STM8

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-3-19 13:34 , Processed in 0.021811 second(s), 20 queries .

返回顶部