野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13698|回复: 7

can1和can2中断收发

[复制链接]
发表于 2018-6-21 13:31:10 | 显示全部楼层 |阅读模式
1火花
请问:这是一个can1和can2互相收发的程序,在主函数中发送,在中断里接收,然后通过串口2发送出来。之前调试没问题的,但是现在调试不出来了,调试发现不进接收中断,但是查看配置,感觉中断的配置没有问题,所以现在卡死了,不知道为什么了。希望能获得你的帮助
芯片是107的,can1和can2用vp230芯片

STM32F107_2can_rx_tx_uart2.rar (1.21 MB, 下载次数: 61)

回复

使用道具 举报

发表于 2018-6-21 13:40:10 | 显示全部楼层
看看是不是报文过滤掉了
回复

使用道具 举报

 楼主| 发表于 2018-6-21 13:41:29 | 显示全部楼层
笑你像狗 发表于 2018-6-21 13:40
看看是不是报文过滤掉了

应该不是,我用printf把接收的内容发送出来,还有提示信息呢,都不显示,证明没进中断,中端配置问题,或者发送有问题,因为用的是发送中断
回复

使用道具 举报

 楼主| 发表于 2018-6-21 14:36:08 | 显示全部楼层
CAN_Transmit()调试发现这个函数的返回值是4,也就是没有空闲邮箱,怎么设置出来空闲邮箱呢?  返回值有4个状态,0 1 2 4  
4代表 CAN cell did not provide an empty mailbox ,我配置的没有问题啊
回复

使用道具 举报

发表于 2018-6-21 14:59:27 | 显示全部楼层
伊森亨特 发表于 2018-6-21 14:36
CAN_Transmit()调试发现这个函数的返回值是4,也就是没有空闲邮箱,怎么设置出来空闲邮箱呢?  返回值有4 ...

应该是发送后没进行等待或者检测标志导致发送邮箱塞满了
回复

使用道具 举报

 楼主| 发表于 2018-6-21 17:25:30 | 显示全部楼层
flyleaf 发表于 2018-6-21 14:59
应该是发送后没进行等待或者检测标志导致发送邮箱塞满了

一共就发10个数据,我看看加延时吧
回复

使用道具 举报

发表于 2018-6-21 17:36:32 | 显示全部楼层
伊森亨特 发表于 2018-6-21 17:25
一共就发10个数据,我看看加延时吧

发送后可以调用函数检测标志的,等到有标志再发下一个就好
回复

使用道具 举报

发表于 2023-10-31 10:34:15 | 显示全部楼层
CAN_Transmit()调试时很有用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-28 21:12 , Processed in 0.036871 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表