发 帖  
原厂入驻New
freeRTOS串口程序会出现哪些问题
94 数据 缓冲区
分享
我想在F407上实现一个串口收发的功能,串口中断函数里,把接收的数据放到缓冲区数组里,任务有三个,分别是解析缓冲区的数据,组帧放入发送缓冲区,将缓冲区的数据发送出去,现在是刚开机只执行优先级最高的任务,然后没过一两秒就进入了串口中断里,就没反应了,大家根据经验,帮我想想,可能程序哪里会出现问题?
0
2020-6-17 04:36:54   评论 分享淘帖 邀请回答

相关问题

5个回答
你说的没反应了是程序挂了还是什么意思?开机进入串口中断的话,你可以看看你在串口初始化的时候有没有做串口接收中断标志位清除的动作。
2020-6-17 09:57:19 评论

举报

中断标志位清除了,任务的程序都是把之前裸机上能运行的程序复制过来的
2020-6-17 10:05:08 评论

举报

方不方便贴出任务的代码,凭空猜想很难分析问题。
2020-6-17 10:13:17 评论

举报

[C] 纯文本查看 复制代码
void USART6_IRQHandler(void){                    if(USART_GetITStatus(USART6, USART_IT_RXNE) != RESET)         {                BaseType_t xHigherPriorityTaskWoken;   xHigherPriorityTaskWoken = pdFALSE;                                         u16 ReceiveData;                        if((GetRxBufferLength(&MyUart[GPS_COM6])<(UARTBUFFSIZE-1)))                            {                                ReceiveData=USART_ReceiveData(USART6);                                EnRxBuffer(&MyUart[GPS_COM6], ReceiveData);                                portYIELD_FROM_ISR(xHigherPriorityTaskWoken);                        }                USART_ClearITPendingBit(USART6,USART_IT_RXNE);         }}
2020-6-17 10:31:28 评论

举报

自己在线跑下看看程序都干嘛去了
来自: 微社区
2020-6-17 10:48:39 评论

举报

只有小组成员才能发言,加入小组>>

275个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

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