- 打卡等级:初来乍到
- 打卡总天数:3
- 最近打卡:2025-08-02 16:31:59
已绑定手机
新手上路
- 积分
- 30
|
数据手册上PX4 可以设置INT4的中断优先级,但是提供的库函数里INT4默认将中断优先级设置为0.请问INT4可以设置中断优先级吗?
//========================================================================
// 函数: u8 Ext_Inilize(u8 EXT, EXTI_InitTypeDef *INTx)
// 描述: 外部中断初始化程序.
// 参数: INTx: 结构参数,请参考Exti.h里的定义.
// 返回: 成功返回0, 空操作返回1,错误返回2.
// 版本: V1.0, 2012-10-22
//========================================================================
u8 Ext_Inilize(u8 EXT, EXTI_InitTypeDef *INTx)
{
if(EXT > EXT_INT4) return 1; //空操作
if(EXT == EXT_INT0) //外中断0
{
if(INTx->EXTI_Interrupt == ENABLE) EX0 = 1; //允许中断
else EX0 = 0; //禁止中断
if(INTx->EXTI_Polity == PolityHigh) PX0 = 1; //高优先级中断
else PX0 = 0; //低优先级中断
if(INTx->EXTI_Mode == EXT_MODE_Fall) IT0 = 1; //下降沿中断
else IT0 = 0; //上升,下降沿中断
return 0; //成功
}
if(EXT == EXT_INT1) //外中断1
{
if(INTx->EXTI_Interrupt == ENABLE) EX1 = 1; //允许中断
else EX1 = 0; //禁止中断
if(INTx->EXTI_Polity == PolityHigh) PX1 = 1; //高优先级中断
else PX1 = 0; //低优先级中断
if(INTx->EXTI_Mode == EXT_MODE_Fall) IT1 = 1; //下降沿中断
else IT1 = 0; //上升,下降沿中断
return 0; //成功
}
if(EXT == EXT_INT2) //外中断2, 固定为下降沿低优先级中断
{
if(INTx->EXTI_Interrupt == ENABLE) INT_CLKO |= (1 << 4); //允许中断
else INT_CLKO &= ~(1 << 4); //禁止中断
return 0; //成功
}
if(EXT == EXT_INT3) //外中断3, 固定为下降沿低优先级中断
{
if(INTx->EXTI_Interrupt == ENABLE) INT_CLKO |= (1 << 5); //允许中断
else INT_CLKO &= ~(1 << 5); //禁止中断
return 0; //成功
}
if(EXT == EXT_INT4) //外中断4, 固定为下降沿低优先级中断
{
if(INTx->EXTI_Interrupt == ENABLE) INT_CLKO |= (1 << 6); //允许中断
else INT_CLKO &= ~(1 << 6); //禁止中断
return 0; //成功
}
return 2; //失败
}
|
-
-
|