新闻中心

EEPW首页>嵌入式系统>设计应用> STM32串口配置(基于uC/OS)

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

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

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

本文引用地址://m.amcfsurvey.com/article/201611/319513.htm

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中如果执行以上代码就不会产生中断。



关键词:STM32串口配置uCO

评论


技术专区

关闭