完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好!
我真的不知道如何解释这个。但我已经启用了 CANBUS,它工作得很好。我也激活了 USB,它也可以工作。 但是由于我已经将CANBUS RX0的抢占从0改为1,所以我无法使用USB连接。 我将 CANBUS RX0 的抢占从 0 更改为 1,否则 Systick 将停止。只要我在 CANBUS RX 中断函数中,HAL_GetTick() 就会给出相同的数字。 当我优先为 CANBUS RX0 设置 1 并插入 USB 时会发生什么。从我的电脑角度来看,它说它无法连接设备。 从我的 STM32 角度来看,我永远陷入 wIstr = 41465的 while 循环中
我需要帮助的是 HAL_GetTick() 不适用于 CANBUS RX0 优先级 0,所以我将优先级更改为 1。所以现在 HAL_GetTick() 在上面的 CANBUS RX 中断函数中工作。 但是 USB 将无法工作,因为如果 CANBUS RX0 优先级为 1,我将无法连接它。所以我需要再次将其设置为 0,但我遇到了与以前相同的问题。 那么我应该在这里做什么?
我的 STM32 是 STM32F373VBTx,我使用的是 STM32CubeIDE 1.7.0。 |
|
相关推荐
1个回答
|
|
为了能够在中断中正确使用 HAL_GetTick()(HAL 依赖它),SysTick 必须具有比中断更高的优先级。
因此,将 SysTick 的优先级设置为最高级别在理论上将允许它在任何地方使用。 不幸的是,根据应用程序,将 SysTick 设置为最高优先级可能会导致其他事件的反应性损失。 根据经验,根本不建议在 ISR 中等待事件或执行耗时的任务。 选择选项 1 是最合乎逻辑的事情。选项 2 在理论上应该可行。选项 3 不会有任何改变。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2790 浏览 1 评论
3254 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1827 浏览 1 评论
3672 浏览 6 评论
6069 浏览 21 评论
1352浏览 4评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
374浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
471浏览 2评论
STM32处理增量式编码器Z信号如何判断中断是正转的还是反向转的?
294浏览 2评论
使用STM32F407VET6的USB2.0功能,发现ctl后芯片无数据返回,是什么原因可能导致的呢?
218浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-15 11:23 , Processed in 1.277773 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号