stm32f103 为什么进入不了CAN中断?

[复制链接]
10141|5
 楼主| ling13147 发表于 2012-7-26 21:25 | 显示全部楼层 |阅读模式
我想利用CAN中断来接受筛选数据,数据传输使用环回模式,在程序中的设置如下:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1,ENABLE);

NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;

CAN_ITConfig(CAN1,CAN_IT_FMP0,ENABLE);

CAN_Transmit(CAN1,&TxMessage);

中断程序:
void USB_LP_CAN_RX0_IRQHandler(void)

我使用JLINK调试,查看寄存器发现接受的数据是正确的,并且FMPIE0=1,FMP0=1,按理说可以进入中断程序啊,但是继续往下调试中程序进入到startup_stm32f10x_md.s的  
                B       .
                ENDP
                ALIGN
指令上面就不动了,这是怎么回事啊?  求神人指点一下,小弟感激不尽。
qiujiahongde 发表于 2012-7-26 21:44 | 显示全部楼层
单凭你发这些估计没人看得出来,提示需要注意的地方
1、IO口初始化正确;
2、IO使能;
3、AFIO使能;
4、CAN总线配置;
5、CAN中断使能;
6、NVIC配置;
大概就是注意这些了!
acgean 发表于 2012-7-27 08:23 | 显示全部楼层
没有设置 CAN 的中断吧, 可以参考一下库里的例程
figo20042005 发表于 2012-7-27 09:46 | 显示全部楼层
希望LZ把各个初始化的代码也说明下,不然没法解答
 楼主| ling13147 发表于 2012-7-27 10:46 | 显示全部楼层
问题已经解决了!
void USB_LP_CAN_RX0_IRQHandler(void)我写错了,编译连接既然通过了,应该把CAN改为CAN1。
教材里还有好多隐性的错误,非得仔细调试不可。
谢谢上面朋友们的提示!
忧忧 发表于 2014-10-2 17:05 | 显示全部楼层
CAN_Transmit(CAN1,&TxMessage);
你的不是接收中断吗  怎么是发送函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

53

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部