STM32之USART学习
2013-05-25 12:38
183 查看
作者:无风
转自:/article/10222240.html
RCC_Configuration();
2、 中断源配置:
NVIC_Configuration();
举例:
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; //设置串口1中断
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //子优先级为0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能
NVIC_Init(&NVIC_InitStructure);
}
3、 端口初始化:
GPIO_Configuration();
端口初始化不但包括要用IO,也包括USART的IO口初始化;
RCC_APB1PeriphClockCmd(XX, ENABLE); //使能APB1低速总线
RCC_APB2PeriphClockCmd(XX,ENABLE); //使能APB2高速总线
普通IO配置:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x; //定义GPIOX中的x脚,输出需要规定速度
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOX, &GPIO_InitStructure);
USART的IO配置:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x; //USARTx TX
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOX, &GPIO_InitStructure); //X端口
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x; //USARTx RX
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //复用开漏输入
GPIO_Init(GPIOX, &GPIO_InitStructure);
4、 波特率及模式设置:
USART_Init(USARTx, &USART_InitStructure),一般用自己写USART_Config函数来对其模特率及发送模式进行设置;
5、 使能接收中断或者发送中断:
USART_ITConfig(USARTx, USART_IT_RXNE, ENABLE); //使能接收中断
USART_ITConfig(USARTx, USART_IT_TXE, ENABLE); //使能发送缓冲空中断
6、
使能USART:
USART_Cmd(USARTx, ENABLE);
注:以上三个一般都出现在USART_Config();自定义函数中
7、
串口输出函数:
USART_OUT()用于显示输出函数,便于调试
转自:/article/10222240.html
USART初始化注意点:
1、 系统时钟定义:RCC_Configuration();
2、 中断源配置:
NVIC_Configuration();
举例:
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; //设置串口1中断
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //子优先级为0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能
NVIC_Init(&NVIC_InitStructure);
}
3、 端口初始化:
GPIO_Configuration();
端口初始化不但包括要用IO,也包括USART的IO口初始化;
RCC_APB1PeriphClockCmd(XX, ENABLE); //使能APB1低速总线
RCC_APB2PeriphClockCmd(XX,ENABLE); //使能APB2高速总线
普通IO配置:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x; //定义GPIOX中的x脚,输出需要规定速度
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOX, &GPIO_InitStructure);
USART的IO配置:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x; //USARTx TX
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOX, &GPIO_InitStructure); //X端口
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x; //USARTx RX
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //复用开漏输入
GPIO_Init(GPIOX, &GPIO_InitStructure);
4、 波特率及模式设置:
USART_Init(USARTx, &USART_InitStructure),一般用自己写USART_Config函数来对其模特率及发送模式进行设置;
5、 使能接收中断或者发送中断:
USART_ITConfig(USARTx, USART_IT_RXNE, ENABLE); //使能接收中断
USART_ITConfig(USARTx, USART_IT_TXE, ENABLE); //使能发送缓冲空中断
6、
使能USART:
USART_Cmd(USARTx, ENABLE);
注:以上三个一般都出现在USART_Config();自定义函数中
7、
串口输出函数:
USART_OUT()用于显示输出函数,便于调试
相关文章推荐
- STM32入门学习之USART中断(STM32F030F4P6基于CooCox IDE)
- STM32学习笔记——USART串口
- stm32之USART学习
- STM32 USART串口的学习与体会
- STM32入门学习之USART(STM32F030F4P6基于CooCox IDE)
- STM32学习笔记:USART串口的…
- STM32 学习八 USART通信3 库函数方式编程
- STM32学习之:USART中断方式
- STM32学习--USART
- STM32 学习九 通过USART实现printf重定向
- STM32单片机学习笔记——USART串口通信
- STM32 学习七 USART通信2 寄存器方式编程
- STM32学习第三天----有个USART的发送数据的问题没有解决
- stm32之USART学习
- STM32学习之USART串口
- STM32学习笔记——USART串口(向原子哥和火哥学习)
- STM32之USART学习
- STM32-USART DMA_Interrupt例程的学习
- STM32-USART DMA_Interrupt例程的学习
- stm32 USART 学习笔记!