stm32的USART编程的基本思路(基于标准固件库)

作为初学stm32的小白,下面我来介绍一下解决USART通信的最基本功能实现的编程思路。
对于stm32而言,时钟的使能是必不可少的,没有时钟的使能外设将无法正常运行,因此,我们要先进行时钟使能。
而USART串口的使用是借助GPIO的复用功能来实现的,比如USART1就是GPIO的PA9、PA10管进行复用来实现的功能,我们通过查阅技术手册可以得到它们需要配置的输出输入状态。
为了使数据被接收后立刻被读取,我们可以使用中断函数,即数据接收后引发中断响应,在中断响应函数中读取,然后再退出中断。
因此,编程的一般步骤为:
• 一、配置GPIO口及UART1口 (APB2, PA9, PA10管脚)
• 1. 使能Tx、Rx管脚对应的GPIO组时钟, RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx, ENABLE);
• 2.使能Tx、Rx管脚对应的UART时钟, RCC_APB2PeriphClockCmd(RCC_APB2Periph_ UARTx, ENABLE);
• 3. 定义一个GPIO初始化结构体型的变量和一个UART初始化结构体变量

GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;

• 4. 对GPIO初始化结构体变量的各成员赋值,设置GPIO为TX推挽复用输出模式,RX为浮空输入模式

GPIO_InitStructure.GPIO_Pin =; 
GPIO_InitStructure.GPIO_Mode =;
GPIO_InitStructure.GPIO_Speed =;

• 5. 对UART初始化结构体变量各成员赋值,

USART_InitStructure.USART_BaudRate =; 
USART_InitStructure.USART_WordLength =; 
USART_InitStructure.USART_StopBits=; 
USART_InitStructure.USART_Parity=;
USART_InitStructure.USART_Mode =

• 6. 调用初始化函数,初始化GPIO, GPIO_Init(GPIO_Pin_n,&GPIO_InitStructure);
• 7. 调用初始化函数,初始化UART, USART_Init(USARTx,&USART_InitStructure);
• 8. 配置串口中断优先级,使能串口中断,

 NVIC_Configuration(); 
 USART_ITConfig(DEBUG_USARTx, USART_IT_RXNE, ENABLE);

• 9. 使能串口,

 USART_Cmd(DEBUG_USARTx, ENABLE);

• 二、编写UART中断程序: USART1_IRQHandler
• 三、在主函数中,完成其他功能编程。

猜你喜欢

转载自blog.csdn.net/qq_46523260/article/details/106878758