共2条
1/1 1 跳转至页
spi0 我的spi0怎么进不了中断呢?
问
void init_spi(void)
{
PINSEL0 = 0x00005500; /* 设置SPI0管脚连接 */
PINSEL1 = 0x00000000;
S0PCR = 0x98; /* SCK低有效,工作在从模式,MSB->LSB,允许中断 */
}
void __irq IRQ_SPI0(void)
{
S0PINT = S0PINT | 0X80; /* 清除中断标志 */
VICVectAddr = 0; // 向量中断结束
}
void init_vector(void)
{
VICIntSelect = 0x00; // 所有中断通道设置为IRQ中断
VICVectCntl0 = 0x2A; // spi0中断通道分配最高优先级(向量控制器0)
VICVectAddr0 = (uint32)IRQ_SPI0; // 设置中断服务程序地址向量
VICIntEnable = 0x00000400; // 使能spi0中断
}
int main()
{
init_spi();
init_vector();
while(1);
return 0;
} 答 1: 请高手指点我调试的时候检查了相关的寄存器,发现中断已经检测到了,就是进不去isr服务程序,不知道是不是还有哪些地方没有设置? 答 2: 问题解决了cpsr 开isr中断即可
{
PINSEL0 = 0x00005500; /* 设置SPI0管脚连接 */
PINSEL1 = 0x00000000;
S0PCR = 0x98; /* SCK低有效,工作在从模式,MSB->LSB,允许中断 */
}
void __irq IRQ_SPI0(void)
{
S0PINT = S0PINT | 0X80; /* 清除中断标志 */
VICVectAddr = 0; // 向量中断结束
}
void init_vector(void)
{
VICIntSelect = 0x00; // 所有中断通道设置为IRQ中断
VICVectCntl0 = 0x2A; // spi0中断通道分配最高优先级(向量控制器0)
VICVectAddr0 = (uint32)IRQ_SPI0; // 设置中断服务程序地址向量
VICIntEnable = 0x00000400; // 使能spi0中断
}
int main()
{
init_spi();
init_vector();
while(1);
return 0;
} 答 1: 请高手指点我调试的时候检查了相关的寄存器,发现中断已经检测到了,就是进不去isr服务程序,不知道是不是还有哪些地方没有设置? 答 2: 问题解决了cpsr 开isr中断即可
共2条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 三分钟快速搭建NXP MCU开发环境(VSCode)被打赏¥22元 | |
| 为遥控小车巧添功能被打赏¥26元 | |
| 【S32K3XX】FlexCAN 模块配置使用被打赏¥30元 | |
| 【S32K3XX】FlexCAN RAM 资源分配整理被打赏¥25元 | |
| 【S32K3XX】IPCF 适配核间中断处理被打赏¥21元 | |
| 【S32K3XX】IPCF 核间通讯模块UNMANAGED方式使用被打赏¥29元 | |
| 片外存储Flash使用方法(Arduino IDE环境)被打赏¥22元 | |
| 三分钟快速上手ESP-NOW(ArduinoIDE环境)被打赏¥23元 | |
| 【S32K3XX】LPSPI参数配置说明被打赏¥21元 | |
| 在WT9932C61-TINY上实现超声波测距被打赏¥22元 | |
我要赚赏金
