STM32F407 CAN接收中断无法触发

川妮麦 2020-12-28 10:22:05
正常模式下,CAN1的发送中断能出发,但是在断点调试中,装完数据,进行到 TIR|=TMIDx_TXRQ 请求发送数据时。ESR寄存器报错,LEC位显示的值是0x03,经过查询发现是ACK应答错误。 CAN回环模式下,不会报错,发送和接收寄存器里都有数据。静音模式非静音模式也都试过。我觉得CAN的配置应该没问题,因为是重构程序,老程序能正常运行,说明硬件不存在问题。 目前最怀疑是中断出问题了。 之前copy老程序的SysTick滴答计时器也不能往下计数。但是又找不到问题所在,启动文件里也有同名的[weak]标志的函数名。我是刚入职的菜鸡,希望大佬们出出注意。(CAN1 CAN2都一样的问题)
...全文
5274 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
worldy 2020-12-29
  • 打赏
  • 举报
回复
怎么可能, 你在main函数初始化阶段调用一下SysTick_Config(n) 试试, n定时器设置值
worldy 2020-12-28
  • 打赏
  • 举报
回复
调试,检查SysTick中断控制位是否有打开
川妮麦 2020-12-28
  • 打赏
  • 举报
回复
引用 1 楼 worldy的回复:
调试,检查SysTick中断控制位是否有打开
systick_handler,这个中断进不了,我就用普通定时器替代的。
川妮麦 2020-12-28
  • 打赏
  • 举报
回复
引用 2 楼 川妮麦的回复:
[quote=引用 1 楼 worldy的回复:]调试,检查SysTick中断控制位是否有打开
是SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk吗?[/quote] 刚刚试过,没有作用。我现在是用TIM4普通定时器替代systick,串口中断,DMA中断,外部中断都没问题。
川妮麦 2020-12-28
  • 打赏
  • 举报
回复
引用 1 楼 worldy的回复:
调试,检查SysTick中断控制位是否有打开
是SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk吗?

27,519

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧