关于finsh 中不起作用

发布于 2019-12-19 17:34:06
一、rt_kprintf()可以使用

void rt_hw_console_output(const char *str)
{
rt_enter_critical();
while(*str!='\0')
{
if(*str=='\n')
{
usart_data_transmit(USART0,'\r');
while(!usart_flag_get(USART0,USART_FLAG_TBE));
}
usart_data_transmit(USART0,*str++);
while(!usart_flag_get(USART0,USART_FLAG_TBE));
}
rt_exit_critical();
}



二、char rt_hw_console_getchar(void)
{
int ch = -1;

if (usart_flag_get(USART0, USART_FLAG_RBNE) != RESET)
{
ch = usart_data_receive(USART0)&0xff;

}
else
{
if(usart_flag_get(USART0, USART_FLAG_ORERR) != RESET)
{
usart_flag_clear(USART0, USART_FLAG_ORERR);
}
rt_thread_mdelay(10);
}
return ch;
}


三、结果发送指令不回响


四、运行平台 cpu:gd32f303vc RT-Thread Nano 3.1.3版本

finsh.png

查看更多

关注者
0
被浏览
457
8 个回答
RTT_User1
RTT_User1 2019-12-19
debug 看看串口有没有收到输入
bernard
bernard 2019-12-20
这类串口助手就是这样,不会主动发送回车符。但是msh shell中是以回车符做为命令的执行点的。

加入下面的发送新行选项吧,或者使用putty。
zeshoufx
zeshoufx 2019-12-20
RTT_User1 发表于 2019-12-19 19:40
debug 看看串口有没有收到输入


可以收到,,,这是裸机的串口程序收到的
zeshoufx
zeshoufx 2019-12-20
bernard 发表于 2019-12-20 08:04
这类串口助手就是这样,不会主动发送回车符。但是msh shell中是以回车符做为命令的执行点的。

加入下面的 ...


“char rt_hw_console_getchar(void)”我的这个函数是不是有问题?
zeshoufx
zeshoufx 2019-12-21
yangjie 发表于 2019-12-21 09:42
finsh的源码添加到工程中了没有?有没有开启RT_USING_FINSH?


开启了,,,

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友