找回密码
 立即注册
查看: 139|回复: 6

定时1us和CDC冲突

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-03-17 20:25:55

6

主题

17

回帖

110

积分

注册会员

积分
110
发表于 2025-2-4 11:35:57 | 显示全部楼层 |阅读模式
我使用的单片机是32F12K54

当定时器0定时100us时, CDC功能正常
当定时器0定时1us时, 电脑识别不出来CDC口了
求解~
我的应用是检测两次CAN通讯的时差, 需要用到us级别的定时, 而且我也想把CAN数据通过CDC口发送到电脑
我感觉我的程序没错, 是不是us级别的定时本身会中断CDC啊? 我已经把定时器0的定时中断优先级整成了最低
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5454

积分

版主

积分
5454
发表于 2025-2-4 12:24:36 | 显示全部楼层
有可能是进入中断太频繁了导致其他任务被堵塞执行。
可以尝试给定时器0中断函数内加入:进入时某个IO置1,结束时某个IO置0.
通过外部示波器查看这个波形的占空比是否过高。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-05-02 09:38:13

109

主题

1900

回帖

5214

积分

论坛元老

积分
5214
发表于 2025-2-4 15:26:29 | 显示全部楼层
定时1us,太短了,MCU单独处理中断很忙了,哪有时间去处理CDC的事务
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-04-30 08:40:57
已绑定手机

15

主题

630

回帖

730

积分

高级会员

积分
730
发表于 2025-2-4 15:53:43 来自手机 | 显示全部楼层
王昱顺 发表于 2025-2-4 12:24
有可能是进入中断太频繁了导致其他任务被堵塞执行。
可以尝试给定时器0中断函数内加入:进入时某个IO置1, ...

这是个好主意👍
STC 666 888
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2025-2-4 18:45:37 | 显示全部楼层
1us,  呵呵, 中断太繁忙了,没有时间去处理其他(CDC)任务
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:294
  • 最近打卡:2025-03-06 09:25:41

8

主题

318

回帖

1835

积分

金牌会员

积分
1835
发表于 2025-2-5 09:49:41 | 显示全部楼层
检测两次CAN通讯的时差不需要用1us中断
可以用定时器寄存器的差来计算

点评

好的 谢谢 我还没用过这个方法 试试  发表于 2025-2-5 10:27
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 15:44 , Processed in 0.124111 second(s), 80 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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