1.开启USART和对应GPIO时钟
需要使用标准库头文件“stm32f10x_usart.h”
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
2.初始化USART
USART_InitTypeDef Usart1_struct;//定义USART结构体
Usart1_struct.USART_BaudRate = 9600;//定义波特率
Usart1_struct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//定义硬件流控制
Usart1_struct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//定义传输模式
Usart1_struct.USART_Parity = USART_Parity_No;//定义奇偶校验位
Usart1_struct.USART_StopBits = 1;//定义停止位
Usart1_struct.USART_WordLength = 8;//定义数据长度
USART_Init(USART1,&Usart1_struct);//载入串口设置
3.初始化NVIC
NVIC_InitTypeDef Usart_Nvic;//定义NVIC结构体
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);//设置优先级分组
Usart_Nvic.NVIC_IRQChannel = USART1_IRQn;//配置中断源
Usart_Nvic.NVIC_IRQChannelCmd = ENABLE;//使能中断
Usart_Nvic.NVIC_IRQChannelPreemptionPriority = 2;//设置抢占优先级
Usart_Nvic.NVIC_IRQChannelSubPriority = 1;//设置响应优先级
NVIC_Init(&Usart_Nvic);//载入NVIC结构体
4.初始化GPIO
GPIO_InitTypeDef Usart_Gpio;//定义GPIO结构体
Usart_Gpio.GPIO_Pin = GPIO_Pin_9;//定义引脚
Usart_Gpio.GPIO_Mode = GPIO_Mode_AF_PP;//定义引脚模式为复用推挽模式
Usart_Gpio.GPIO_Speed = GPIO_Speed_50MHz;//定义引脚速度
GPIO_Init(GPIOA,&Usart_Gpio);//载入GPIO结构体
Usart_Gpio.GPIO_Pin = GPIO_Pin_10;//定义引脚
Usart_Gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING;//定义引脚模式为浮空输入模式
GPIO_Init(GPIOA,&Usart_Gpio);//载入GPIO结构体
5.开启USART及其中断
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//使能接收中断
USART_ITConfig(USART1,USART_IT_IDLE,ENABLE);//使能空闲中断
USART_Cmd(USART1,ENABLE);//开启串口
6.编写中断函数
void USART1_IRQHandler(void)
{
}
本文详细介绍了在STM32F10x平台中如何开启USART时钟,初始化串口、NVIC和GPIO,以及设置USART中断。包括波特率、模式、中断配置等内容。
981

被折叠的 条评论
为什么被折叠?



