在线时间12 小时
UID3101724
注册时间2015-2-20
NXP金币0
该用户从未签到
注册会员

- 积分
- 78
- 最后登录
- 2016-5-19
|
新手上路,请教一下KL16 中断问题。
我使用PORTC的SPI接口,引脚为4567
PORT3设置为外部中断,但是每当开启4567脚的复用SPI功能以后就会无限进入中断,是不是SPI和外部中断不能同时使用?
请问要怎么解决呢。
感谢各位~~
void gpioInit(void)
{
SIM_SCGC5 |= SIM_SCGC5_PORTB_MASK | SIM_SCGC5_PORTD_MASK | SIM_SCGC5_PORTE_MASK | SIM_SCGC5_PORTC_MASK; //开启时钟
PORT_ENABLE_CLK(MKL_PORTC); //PORTC 3 外部中断设置
IO_FUN_SEL(MKL_PORTC,3,1);
GPIO_DDR_INPUT(MKL_PORTC,3);
IO_IRQ_CONFIG(MKL_PORTC, 3, IO_EITHER_EDGE_IRQ);
NVIC_EnableIRQ(PORTC_PORTD_IRQn);
NVIC_SetPriority(PORTC_PORTD_IRQn,6);
PORTC_PCR3 = ( PORTC_PCR3 | PORT_PCR_IRQC(PORT_PCR_IRQC_MASK)); //清除标志位
PORTC_PCR4 |= PORT_PCR_MUX(1); //SPI端口初始化
PORTC_PCR5 |= PORT_PCR_MUX(2)|(uint32_t)~(uint32_t)PORT_PCR_MUX(5);
PORTC_PCR6 |= PORT_PCR_MUX(2)|(uint32_t)~(uint32_t)PORT_PCR_MUX(5);
PORTC_PCR7 |= PORT_PCR_MUX(2)|(uint32_t)~(uint32_t)PORT_PCR_MUX(5);
FGPIOC_PSOR |= 1<<4;
FGPIOC_PDDR |= 1<<4;
}
中断服务
void PORTC_PORTD_IRQHandler (void)
{
if(PORTC_PCR3 & PORT_PCR_ISF_MASK)
{
PORTC_PCR3 = ( PORTC_PCR3 | PORT_PCR_IRQC(PORT_PCR_IRQC_MASK));
GPIO_TOGGLE(MKL_PORTC,2) ;
}
}
|
|