中级会员
 
- 积分
- 264
- 金钱
- 264
- 注册时间
- 2019-3-26
- 在线时间
- 105 小时
|
10金钱
当我发送list_sem时,回复正常
list_sem
semaphore v suspend thread
---------------- --- --------------
shrx 000 0
shell_rx 001 0
msh >
msh >
当我发送list_thread时,回复的是list_thead或list_thrad,总是少了一位:
list_thead
list_thead: command not found.
msh >
msh >
msh >
或
list_thrad
list_thrad: command not found.
msh >
msh >
msh >
这是我的代码,请大佬看一下找找原因:
串口中断代码:
void USART6_IRQHandler(void)
{
rt_interrupt_enter();
if((__HAL_UART_GET_FLAG(&UART6_Handler,UART_FLAG_RXNE)!=RESET) &&
((__HAL_UART_GET_IT_SOURCE(&UART6_Handler,UART_IT_RXNE)!=RESET)))
{
__HAL_UART_CLEAR_FLAG(&UART6_Handler,UART_FLAG_RXNE);
rt_sem_release(&shell_rx_sem);//释放信号量
}
rt_interrupt_leave();
}
Finsh字符接收代码:
char rt_hw_console_getchar(void)
{
int ch = -1;
rt_sem_take(&shell_rx_sem,RT_WAITING_FOREVER);//等待信号量
ch = UART6_Handler.Instance->DR & 0xff;
return ch;
}
FinSH优先级是5
|
|