STM32F10x_USART

更新时间:2023-07-13 14:32:38 阅读: 评论:0

21.1 USART    寄存器结构    ..............................................................343
21.2 USART    库函数    ..................................................................344
全美超模大赛第十八季亲和力英文
No
函数名
描述
1
USART_DeInit
将外设USARTx寄存器重设为缺省值
2
USART_Init
根据USART_InitStruct中指定的参数初始化外设USARTx寄存器
3
USART_StructInit
USART_InitStruct中的每一个参数按缺省值填入
4
USART_Cmd
使能或失能USART外设
5
USART_ITConfig
使能或失能指定的USART中断
6
USART_DMACmd
使能或者失能指定USARTDMA请求
7
USART_SetAddress
设置USART节点的地址
8
USART_WakeUpConfig
选择USART的唤醒方式
9
USART_ReceiverWakeUpCmd
检查USART是否处于静默模式
10
USART_LINBreakDetectLengthConfig
设置USART LIN中断检测长度
11
USART_LINCmd
使能或失能USARTxLIN模式
12
USART_SendData
通过外设USARTx发送单个数据
13
USART_ReceiveData
返回USARTx最近接收到的数据
14
法语专业USART_SendBreak
发送中断字
15
USART_SetGuardTime
设置指定的USART保护时间
16
USART_SetPrescaler
设置USART时钟预分频
17
USART_SmartCardCmd
使能或失能指定USART的智能卡模式
18
USART_SmartCardNackCmd
使能或失能NACK传输
19
USART_HalfDuplexCmd
使能或失能USART半双工模式
20
USART_IrDAConfig
设置USART IrDA模式
21
USART_IrDACmd
使能或失能USART IrDA模式
22
USART_GetFlagStatus
检查指定的USART标志位设置与否
迷路的英文23
USART_ClearFlag
清除USARTx的待处理标志位
24
USART_GetITStatus
检查指定的USART中断发生与否
25
USART_ClearITPendingBit
清除英语4级考试USARTx的中断待处理位
26
USART_ClockInit
USART时钟配置
27
USART_ClockStructInit
USART时钟结构体缺省值初始化
21    通用同步异步收发器(    USART
    通用同步异步收发器(USART)提供一种灵活的方法来与使用工业标准NRZ    异步串行数据格式的外部设备之间进全双工数据交换。USART用分数波特发生器提供宽范围的波特选择。它支持同步单向通信和半双工单线通信。它也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC    规范,以及调制解调器(CTS/RTS)操作。它还允许多处器通信。使用多缓冲器配置的DMA方式,可以实现高速数据通信。
    Section 21.1 USART寄存器结构描述了固件函数库所使用的数据结构,Section 21.2    固件库函数介绍了函数库里的所有函数。
21.1 USART寄存器结构
USART寄存器结构,USART_TypeDeff,在文件stm32f0x_map.h中定义如下:
typedef struct
{
vu16 SR;
u16 RESERVED1;
vu16 DR;
u16 RESERVED2;
vu16 BRR;
u16 RESERVED3;
vu16 CR1;
u16 RESERVED4;
vu16 CR2;
u16 RESERVED5;
vu16 CR3;
u16 RESERVED6;
vu16 GTPR;
u16 RESERVED7;
}USART_TypeDef;
Table 704.例举了USART    所有寄存器
    Table 704. USART    寄存器   
寄存器
描述
SR
USART状态寄存器
DR
USART数据寄存器
BRR
USART波特率寄存器
CR1
USART控制寄存器1
CR2
绯闻女孩第三季
USART控制寄存器2
CR3
USART控制寄存器3
GTPR
USART保护时间和预分频寄存器
3     USART外设声明于文件:
...
#define PERIPH_BASE ((u32)0x40000000)
#define APB1PERIPH_BASE PERIPH_BASE
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define AHBPERIPH_BASE (PERIPH_BASE + 0x20000)butterfly什么意思
#define USART1_BASE (APB2PERIPH_BASE + 0x3800)
#define USART2_BASE (APB1PERIPH_BASE + 0x4400)
#define USART3_BASE (APB1PERIPH_BASE + 0x4800)
#ifndef DEBUG
...
#ifdef _USART1
#define USART1 ((USART_TypeDef *) USART1_BASE)
#endif /*_USART1 */
#ifdef _USART2
#define USART2 ((USART_TypeDef *) USART2_BASE)
#endif /*_USART2 */
#ifdef _USART3
#define USART3 ((USART_TypeDef *) USART3_BASE)
#endif /*_USART3 */
...
#el /* DEBUG */
...
#ifdef _USART1
EXT USART_TypeDef *USART1;
#endif /*_USART1 */
#ifdef _USART2
EXT USART_TypeDef *USART2;
#endif /*_USART2 */
#ifdef _USART3
EXT USART_TypeDef *USART3;
#endif /*_USART3 */
...
#endif
使用Debug模式时,初始化指针USART1, USART2    USART3于文件stm2f10x_lib.c   
...
#ifdef _USART1
USART1 = (USART_TypeDef *) USART1_BASE;
#endif /*_USART1 */
lastname#ifdef _USART2
USART2 = (USART_TypeDef *) USART2_BASE;
#endif /*_USART2 */
#ifdef _USART3
USART3 = (USART_TypeDef *) USART3_BASE;
#endif /*_USART3 */
...
为了访问USART    寄存器,_USART_USART1, _USART2regrettable_USART3必须在文件中定义如下:
...
#define _USART
#define _USART1 #define _USART2 #define _USART3
21.2 USART库函数
  USART库函数【见首页】。
01】函数USART_DeInit
    Table 706.     函数    USART_DeInit
函数名
USART_DeInit
函数原形
void USART_DeInit(USART_TypeDef* USARTx)
功能描述
将外设USARTx寄存器重设为缺省值
输入参数
USARTxx军事训练目的可以是1/2/3,来选择USART    外设
输出参数
返回值
先决条件
被调用函数
RCC_APB2PeriphRetCmd()
RCC_APB1PeriphRetCmd()
例:
/* Rets the USART1 registers to their default ret value */
USART_DeInit(USART1);
函数原型如下:
void USART_DeInit(USART_TypeDef* USARTx)
{
  /* Check the parameters */
  asrt_param(IS_USART_ALL_PERIPH(USARTx));//三个USART,两个UART
  switch (*(u32*)&USARTx)
  {
    ca USART1_BASE:
      RCC_APB2PeriphRetCmd(RCC_APB2Periph_USART1, ENABLE);
      RCC_APB2PeriphRetCmd(RCC_APB2Periph_USART1, DISABLE);
      break;
    ca USART2_BASE:
      RCC_APB1PeriphRetCmd(RCC_APB1Periph_USART2, ENABLE);
      RCC_APB1PeriphRetCmd(RCC_APB1Periph_USART2, DISABLE);
      break;
    ca USART3_BASE:
      RCC_APB1PeriphRetCmd(RCC_APB1Periph_USART3, ENABLE);
      RCC_APB1PeriphRetCmd(RCC_APB1Periph_USART3, DISABLE);
      break;
   
    ca UART4_BASE:
      RCC_APB1PeriphRetCmd(RCC_APB1Periph_UART4, ENABLE);
      RCC_APB1PeriphRetCmd(RCC_APB1Periph_UART4, DISABLE);
      break;
   
    ca UART5_BASE:
      RCC_APB1PeriphRetCmd(RCC_APB1Periph_UART5, ENABLE);
      RCC_APB1PeriphRetCmd(RCC_APB1Periph_UART5, DISABLE);
      break;
    default:
      break;
  }

本文发布于:2023-07-13 14:32:38,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/176219.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:寄存器   函数库   使用   指定
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图