• stm32 usart 串口


    比特率是每秒钟传输二进制代码的位数,单位是:位/秒(bps)。如每秒钟传送240个字符, 而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的比特率为:

    • 10位 × 240个/秒 = 2400bps
      1
      USART 串口通信配置步骤

    1.使能串口时钟
    2.使能GPIO端口时钟
    3.GPIO端口模式设置
    4.初始化串口参数,波特率、 数据位、 停止位,校验位等
    5.使能串口
    6.设置串口中断类型并使能
    7.初始化NVIC外设,设置串口中断优先级
    8.编写串口中断处理函数

    举例

    void USART1_IRQHandler() //中断处理函数
    {
    	u8 r;
    
    	if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
    	{
    		USART_ClearITPendingBit(USART1, USART_IT_RXNE); //清中断
    		
    		r = USART_ReceiveData(USART1);
    		
    		USART_SendData(USART1, r);
    		//while(USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET);
    		//USART_ClearFlag(USART1, USART_FLAG_TC);
    	}
    }
    
    void uart1_init()
    {
    	GPIO_InitTypeDef gpio9 = 
    	{
    		GPIO_Pin_9, //TX
    		GPIO_Speed_50MHz,
    		GPIO_Mode_AF_PP //复用推挽输出
    	};
    
    	GPIO_InitTypeDef gpio10 = 
    	{
    		GPIO_Pin_10, //RX
    		GPIO_Speed_50MHz,
    		GPIO_Mode_IN_FLOATING //浮空
    	};
    
    	USART_InitTypeDef usart = 
    	{
    		9600,
    		USART_WordLength_8b,
    		USART_StopBits_1,
    		USART_Parity_No,
    		USART_Mode_Rx | USART_Mode_Tx,
    		USART_HardwareFlowControl_None, //硬件流控制
    	};
    
    	NVIC_InitTypeDef nvic = 
    	{
    		USART1_IRQn,
    		2,
    		2,
    		ENABLE
    	};
    
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); //使能串口时钟
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能GPIO端口时钟
    
    	GPIO_Init(GPIOA, &gpio9); //GPIO端口模式设置
    	GPIO_Init(GPIOA, &gpio10);
    
    	USART_Init(USART1, &usart); //初始化串口
    
    	USART_ClearFlag(USART1, USART_FLAG_TC);
    
    	USART_Cmd(USART1, ENABLE); //使能串口
    
    	USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //设置串口中断类型并使能(接收中断)
    
    	NVIC_Init(&nvic); //初始化NVIC
    }
    

    注:USART_GetITStatus与USART_GetFlagStatus功能类似,区别是USART_GetITStatus函数会先判断是否使能串口中断,使能后才读取状态标志,而USART_GetFlagStatus函数直接读取状态标志

  • 相关阅读:
    XML DOM介绍和例子
    关于IFRAME 自适应高度的研究
    UrlReWriter 使用经验小结
    ASP无限分类数据库版
    全国天气预报代码
    可输入的下拉框
    web2.0_RSS_.net读写
    ASP与存储过程[转帖]
    NetBox Asp Web服务器
    css里可以加表达式 :expression
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/11709572.html
Copyright © 2020-2023  润新知