请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430F5528 工具/软件:Code Composer Studio
您好,
我想为USIB1模块设置SPI主模式-处理中断。
通过轮询UCB1STAT寄存器中的UCBUSY位进行设置-没问题。
但是当我尝试设置中断时,没有任何反应。
在CCS中,我认识到UCB1IE中两个中断启用位的启用不会产生任何效果。 也无法清除UCB1IFG寄存器。
我的初始化例程是:
void main(){
...
UCB1CTL1|=0x01;// UCSWRST重置保持 UCB1CTL0|=0x08|0x80;//主模式+正边缘样本 UCB1CTL1|=0x40;// ACLK选择。 UCB1BR0=1;// LSB时钟预分频器 UCB1BR1=0;// MSB时钟预分频器 // UCB1STAT无事可做 UCB1RXBUF=0;// RX-Buffer为零 // UCB1TXBUF没有可做的事 UCB1IE=0x03;// UCB1IE -中断已启用-无效! UCB1IFG=0; // UCB1IFG已清除-无影响!! // UCB1IV没有可做的事 P4sel|=0x0E;// MOSI Miso SCK; UCB1CTL1&=0xFE;//清除UCSWRST重置保持位- SPI就绪,可供使用
__bis_sr_register (GIE);
...
}
我的中断服务例程(从未达到)由以下人员提供:
#pragma vector=USI_B1_vector // Merke:Bezeichner ist im Linker Command File zu finden。
__interrupt void SPIHandler (void){
字符温度;
Switch(__均匀_in_range(UCB1IV,0x04)){
}
P3OUT ^= 0x04;
}
您能解释一下为什么我不能设置UCB1IE Bits吗? 或者我的错误是什么??
我现在将研究driverlib——但我更喜欢了解寄存器……谢谢!