完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
在 uart0 处理程序中,我们使用system_os_post一段时间将返回 FALSE 。uart fifo set onebyte 将是 FULL 中断 .当 PC com 发送数据时 .3M 的数据大小 .sometime system_os_post 将返回 FALSE.为什么?
|
|
相关推荐
1个回答
|
|
|
在UART0处理程序中,使用system_os_post一段时间将返回FALSE的原因可能有以下几点:
1. 任务优先级问题:在多任务操作系统中,如果当前任务的优先级较低,而其他任务的优先级较高,那么当前任务可能会被抢占,导致system_os_post函数无法成功执行。 2. 消息队列溢出:如果消息队列已满,那么system_os_post函数将无法将消息放入队列,从而返回FALSE。这可能是因为接收到的数据量超过了系统处理能力,或者消息队列的大小设置过小。 3. 中断处理时间过长:如果UART中断处理程序执行时间过长,可能会导致系统无法及时处理其他任务,从而影响system_os_post函数的执行。 4. 系统资源不足:如果系统资源(如内存、CPU等)不足,可能会导致system_os_post函数执行失败。 5. 硬件问题:如果UART硬件存在问题,可能会导致数据传输不稳定,从而影响system_os_post函数的执行。 针对您提到的UART FIFO设置为1字节,这可能会导致中断频繁触发,从而影响系统的性能。当PC COM发送大量数据(如3M)时,如果系统无法及时处理这些数据,可能会导致system_os_post函数返回FALSE。 为了解决这个问题,您可以尝试以下方法: 1. 优化UART中断处理程序,减少处理时间。 2. 调整消息队列的大小,以适应大量数据的接收。 3. 调整任务优先级,确保UART处理任务能够及时执行。 4. 检查系统资源,确保有足够的资源来处理大量数据。 5. 检查UART硬件,确保其正常工作。 6. 考虑增加UART FIFO的大小,以减少中断触发的频率。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
945 浏览 0 评论
1672 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1330 浏览 1 评论
1233 浏览 1 评论
5021 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1254浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2338浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2528浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1052浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 18:39 , Processed in 0.748720 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2597
