新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32串口配置(基于uC/OS)

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

作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò) 收藏
在uC/OS下,串口配置與不使用uC/OS基本相同,但中斷處理有些差別。在uC/OS下取消了固件庫(kù)中的stm32f10x_it.c文件,去而代之的是app_vect_v5.c.

下面是幾個(gè)中斷處理的函數(shù):

本文引用地址:http://m.butianyuan.cn/article/201611/319513.htm

bsp_int.c提供幾個(gè)關(guān)鍵的中斷操作函數(shù):
voidBSP_IntDis(CPU_DATAint_id)//關(guān)閉指定中斷
voidBSP_IntDisAll(void)//關(guān)閉所有中斷
voidBSP_IntEn(CPU_DATAint_id)//使能指定中斷
voidBSP_IntVectSet(CPU_DATAint_id,
CPU_FNCT_VOIDisr)//用這個(gè)函數(shù)把用戶編寫的中斷函數(shù)的首地址放在中斷入口處.
中斷發(fā)生后,系統(tǒng)調(diào)用用戶中斷函數(shù).
voidBSP_IntPrioSet(CPU_DATAint_id,
CPU_INT08Uprio)//設(shè)置中斷優(yōu)先級(jí)

只要調(diào)用BSP_IntVectSet(),就可以把用戶定義的中斷處理函數(shù)映射到相應(yīng)的中斷入口上了。

值得注意的是在app_vect_v5.c.文件中的中斷向量表,只列出了串口1,2,3的中斷入口,4,5要自己添加,否則不會(huì)產(chǎn)生中斷。

還有在串口1,2,3的配置中,不調(diào)用以下代碼設(shè)置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中如果執(zhí)行以上代碼就不會(huì)產(chǎn)生中斷。



關(guān)鍵詞: STM32串口配置uCO

評(píng)論


技術(shù)專區(qū)

關(guān)閉