完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
源码:FreeRTOSv10.0.1单片机:STM32F207VC
在串口中断助手中,打印完字符后,接着显示:Error:..FreeRTOSportableRVDSARM_CM3port.c,202网上一般说是串口的中断优先级低于FreeRTOS的优先级,但是我设置FreeRTOS中可管理的最高中断优先级为5,串口中断优先级为3,还是会出现这个问题。 FreeRTOSConfig.h文件: #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15 //中断最低优先级 #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5 //系统可管理的最高中断优先级 #define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) ) #define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )[/mw_shl_code] usart.c文件: void USART1_NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /*中断优先级选择第1组*/ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); /*3级抢占优先级 0级响应优先级*/ NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } 我看到网上有很多类似的问题,但是好像都没有很好的解决办法,有没有大神给总结一下?谢谢! PS:搜问题的过程中,对优先级的说法,有人说数字越大优先级越高。对FreeRTOS来说,不是数字越小,优先级越高么? |
|
相关推荐
2个回答
|
|
兄对,你理解有误,需要弄清楚中断优先级和任务优先级的概念,对FreeRTOS来说,优先级数越小,代表的优先级越低,反之则越高;而中断优先级才是优先级数越低,代表的优先级越高。它们两者没有必然的联系。
|
|
|
|
这个确实是没有注意区别中断优先级和任务优先级。
但是我根本就没用串口中断服务函数,只是把串口配置了一下,用printf打印到串口的。别人的都是报441、680一类的错误,我的报202的错误,真是要命了。 |
|
|
|
只有小组成员才能发言,加入小组>>
800 浏览 0 评论
1156 浏览 1 评论
2531 浏览 5 评论
2863 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2714 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1090浏览 3评论
195浏览 2评论
461浏览 2评论
374浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
456浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 23:38 , Processed in 1.033463 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号