打印

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

[复制链接]
9600|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把各个初始化的代码也说明下,不然没法解答

使用特权

评论回复
5
ling13147|  楼主 | 2012-7-27 10:46 | 只看该作者
问题已经解决了!
void USB_LP_CAN_RX0_IRQHandler(void)我写错了,编译连接既然通过了,应该把CAN改为CAN1。
教材里还有好多隐性的错误,非得仔细调试不可。
谢谢上面朋友们的提示!

使用特权

评论回复
6
忧忧| | 2014-10-2 17:05 | 只看该作者
CAN_Transmit(CAN1,&TxMessage);
你的不是接收中断吗  怎么是发送函数

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

53

帖子

0

粉丝