STM32标准库串口以及空闲中断使用

本文详细介绍了在STM32F10x平台中如何开启USART时钟,初始化串口、NVIC和GPIO,以及设置USART中断。包括波特率、模式、中断配置等内容。
摘要由CSDN通过智能技术生成

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)
{
	
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值