您的位置:首页 > 其它

【二】STM32F4 USART1 中断方式接收再将字符打印出来

2013-12-10 20:51 316 查看
void USART1_Config(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

USART_InitTypeDef USART_InitStructure;

/* config USART1 clock
*/

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);

/* USART1 GPIO config
*/

GPIO_InitStructure.GPIO_Pin
= GPIO_Pin_6|GPIO_Pin_7;

GPIO_InitStructure.GPIO_Mode
= GPIO_Mode_AF;

GPIO_InitStructure.GPIO_Speed
= GPIO_Speed_50MHz;

GPIO_Init(GPIOB,
&GPIO_InitStructure);

GPIO_PinAFConfig(GPIOB,GPIO_PinSource6,GPIO_AF_USART1);

GPIO_PinAFConfig(GPIOB,GPIO_PinSource7,GPIO_AF_USART1);

/* USART1 mode config
*/

USART_InitStructure.USART_BaudRate
= 115200;

USART_InitStructure.USART_WordLength
= USART_WordLength_8b;

USART_InitStructure.USART_StopBits
= USART_StopBits_1;

USART_InitStructure.USART_Parity
= USART_Parity_No ;

USART_InitStructure.USART_HardwareFlowControl
= USART_HardwareFlowControl_None;

USART_InitStructure.USART_Mode
= USART_Mode_Rx | USART_Mode_Tx;

USART_Init(USART1,
&USART_InitStructure);
/*使能中断*/
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);

USART_Cmd(USART1, ENABLE);

}

还需要配置NVIC

void NVIC_Config(void)

{

NVIC_InitTypeDef NVIC_InitStructure;

NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

在以上函数中,NVIC_IRQChannel 是中断源,可以到STM32F4XX.H的140行处找,

第二项Preemption是中断组,中断组之间可以嵌套,0代表最高。

第三项是每个中断组里的中断成员,成员之间区分优先级,但一个组里的不可以嵌套。

第四项代表使能中断。

好了,NVIC配置好了后,就可以在stm32f4xx_it里添加中断服务函数了。

void USART1_IRQHandler(void)

{

char c;

if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)==SET)

{

c = USART_ReceiveData(USART1);

USART_SendData(USART1,c);

USART_ClearITPendingBit(USART1,USART_IT_RXNE);

GPIO_ToggleBits(GPIOD,GPIO_Pin_14);

}

}

中断服务函数工作很简单,就是将接收到的数据再通过SendData发送出去。

同时为了便于观察是否进入中断,添加了取反GPIOD14的操作,对应discovery板子上的红色LED。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐