您的位置:首页 > 其它

STM32之USART学习

2012-05-10 16:58 225 查看

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()用于显示输出函数,便于调试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: