美文网首页
USART:通用同步/异步接收/发送器

USART:通用同步/异步接收/发送器

作者: BIGHAI | 来源:发表于2017-12-29 11:20 被阅读0次

    要使用NVIC中断控制器的话,那么就得加入misc.c文件,在这个文件里面包含了NVIC的主要功能代码。


    1.关于USART_InitTypeDef结构体

    直接看代码:

    typedef struct {
      uint32_t USART_BaudRate;//设置波特率
      uint32_t USART_Mode;//设置模式是读还是写或者两者都是
      uint32_t USART_WordLength;//设置传输的数据位长度
      uint32_t USART_StopBits;//设置停止位
      uint32_t USART_HardwareFlowControl;//设置硬件数据流控制
      uint32_t USART_Parity;//设置是否需要奇偶校验
    } USART_InitTypeDef;
    

    下面看看每个结构体成员可以取的值:

    USART_Mode
    • USART_Mode_Rx: 只读
    • USART_Mode_Tx: 只写
    • USART_Mode_Rx | USART_Mode_Tx: 读写

    USART_WordLength
    • USART_WordLength_8b:
    • USART_WordLength_9b: 如果开启了奇偶校验的话那么最好数据位是9位,因为校验位会插入在数据位的最高位上

    USART_StopBits
    • USART_StopBits_1: 一位停止位
    • USART_StopBits_0_5: 0.5个停止位
    • USART_StopBits_2: 2个停止位
    • USART_StopBits_1_5: 1.5个停止位

    USART_Parity
    • USART_Parity_No: 不设置奇偶校验位
    • USART_Parity_Even: 设置偶检验位
    • USART_Parity_Odd: 设置奇校验位
      需要注意的地方:经过计算出来得到的校验位被放在数据位的最高位,所以为了避免乱码,最好在开启了奇偶校验的话那么就将USART_WordLength设置为9位

    USART_HardwareFlowControl
    • USART_HardwareFlowControl_None: 不需要硬件流控制
    • USART_HardwareFlowControl_RTS: request to send
    • USART_HardwareFlowControl_CTS: clear to send
    • USART_HardwareFlowControl_RTS_CTS:

    2.相关库函数的大致使用流程

    这里以伪代码简易介绍一下:

    USART_InitTypeDef USART_InitStructure;
    USART_InitStructure.xxx = xxx;//填充好这个USART_InitTypeDef对象
    USART_Init(USARTx, &USART_InitStructure);//应用配置
    USART_Cmd(USARTx, ENABLE);//使能具体的USART
    

    当然,前面还得配置一下端口。需要注意的是如果端口的默认功能就是用作USART的话,那么不需要开启AFIO时钟,我们只需要开启端口时钟以及usart时钟。还有就是对于STM32F103ZE来说,我们的usart1属于APB2外设。


    相关文章

      网友评论

          本文标题:USART:通用同步/异步接收/发送器

          本文链接:https://www.haomeiwen.com/subject/sqolgxtx.html