微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32串口配置(基于uC/OS)

STM32串口配置(基于uC/OS)

时间:11-21 来源:互联网 点击:
在uC/OS下,串口配置与不使用uC/OS基本相同,但中断处理有些差别。在uC/OS下取消了固件库中的stm32f10x_it.c文件,去而代之的是app_vect_v5.c.

下面是几个中断处理的函数:

bsp_int.c提供几个关键的中断操作函数:
voidBSP_IntDis(CPU_DATAint_id)//关闭指定中断
voidBSP_IntDisAll(void)//关闭所有中断
voidBSP_IntEn(CPU_DATAint_id)//使能指定中断
voidBSP_IntVectSet(CPU_DATAint_id,
CPU_FNCT_VOIDisr)//用这个函数把用户编写的中断函数的首地址放在中断入口处.
中断发生后,系统调用用户中断函数.
voidBSP_IntPrioSet(CPU_DATAint_id,
CPU_INT08Uprio)//设置中断优先级

只要调用BSP_IntVectSet(),就可以把用户定义的中断处理函数映射到相应的中断入口上了。

值得注意的是在app_vect_v5.c.文件中的中断向量表,只列出了串口1,2,3的中断入口,4,5要自己添加,否则不会产生中断。

还有在串口1,2,3的配置中,不调用以下代码设置NVIC也能正常工作。

NVIC_InitTypeDef NVIC_InitStructure;
// Enable the USART1 Interrupt
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);*/

而在串口4,5中如果执行以上代码就不会产生中断。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top