美文网首页
串口学习

串口学习

作者: 恰似一碗咸鱼粥 | 来源:发表于2019-07-17 21:04 被阅读0次

    一般串口设置的步骤分为以下几个:
    (1)串口时钟使能,GPIO时钟使能
    (2)串口复位
    (3)GPIO端口模式设置
    (4)串口参数初始化
    (5)开启中断并且初始化NVIC
    (6)使能串口
    (7)编写中断处理函数


    对于串口时钟使能,由串口是挂载在ABP2下面的外设,使能函数为:
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1);


    对于串口复位,当外设出现异常可以通过复位设置实现复位,然后重新配置这个外设使其达到重新工作的目的
    USART_DeInit(USART1);


    串口参数初始化,通过USART_Init()函数实现,它有两个参数,第一个是指定初始化串口的串口标号,这里选择USART1,第二个是一个USART_InitTypeDef类型的结构体指针,利用这个结构体的成员变量来初始化一些参数。

    USART_InitStructure.USART_BaudRate=bound;//波特率设置
    USART_InitStructure.USART_WordLength=USART_WordLength_8b;//字长为8位
    。。。
    

    数据发送与接收通过寄存器USART_DR实现。

    USART_SendData(串口号,uint16_t的数据);
    USART_ReceiveData(串口号);
    

    串口状态,通过寄存器USART_SR读取,各位的描述看开发指南,第5、6位RXNE和TC。
    当RXNE被置1时,说明有数据被接收,此时需要尽快去读取USART_DR,读取后RXNE被置0。
    TC被置为时,说明USART_DR内的数据已经被发送完成,如果设置了该位的中断,则会产生中断,该位的清零方式也有两种,读USART_SR,写USART_DR或者直接向该位写0。
    判断非空的操作是USART_GetFlagStatus(USART1,USART_FLAG_RXNE/TC);

    相关文章

      网友评论

          本文标题:串口学习

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