STM32串口 uart
时间:12-03
来源:互联网
点击:
uart初始化步骤
波特率计算公式:波特率=Fpclkx /(16*USARTdiv)
以uart1为例说明uart1使用PA9,PA10
1、计算波特率参数
temp=(float)(pclk2*1000000)/(bound*16);//得到USARTdiv
mantissa=temp; //得到整数部分
fraction=(temp-mantissa)*16; //得到小数部分
mantissa<=4;
mantissa+=fraction; //波特率数值
2、PA外设时钟使能
RCC->APB2ENR|=1<2; //使能PORTA口时钟
3、UART时钟使能
RCC->APB2ENR|=1<14; //使能串口时钟
4、IO状态初始设置
GPIOA->CRH=0X444444B4;//IO状态设置
5、复位串口
RCC->APB2RSTR|=1<14; //复位串口1
RCC->APB2RSTR&=~(1<14);//停止复位
6、波特率设置
USART1->BRR=mantissa; // 波特率设置
7、校验位停止位设置
USART1->CR1|=0X200C; //1位停止,无校验位.
8、使能接收中断
USART1->CR1|=1<8; //PE中断使能
USART1->CR1|=1<5; //接收缓冲区非空中断使能
MY_NVIC_Init(3,3,USART1_IRQChannel,2);//组2,最低优先级
波特率计算公式:波特率=Fpclkx /(16*USARTdiv)
以uart1为例说明uart1使用PA9,PA10
1、计算波特率参数
temp=(float)(pclk2*1000000)/(bound*16);//得到USARTdiv
mantissa=temp; //得到整数部分
fraction=(temp-mantissa)*16; //得到小数部分
mantissa<=4;
mantissa+=fraction; //波特率数值
2、PA外设时钟使能
RCC->APB2ENR|=1<2; //使能PORTA口时钟
3、UART时钟使能
RCC->APB2ENR|=1<14; //使能串口时钟
4、IO状态初始设置
GPIOA->CRH=0X444444B4;//IO状态设置
5、复位串口
RCC->APB2RSTR|=1<14; //复位串口1
RCC->APB2RSTR&=~(1<14);//停止复位
6、波特率设置
USART1->BRR=mantissa; // 波特率设置
7、校验位停止位设置
USART1->CR1|=0X200C; //1位停止,无校验位.
8、使能接收中断
USART1->CR1|=1<8; //PE中断使能
USART1->CR1|=1<5; //接收缓冲区非空中断使能
MY_NVIC_Init(3,3,USART1_IRQChannel,2);//组2,最低优先级
STM32串口uar 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)