关于finsh 打印的问题

发布于 2019-06-16 15:24:25
    本帖最后由 noerr 于 2019-6-17 14:05 编辑


系统 :

\ | /
- RT - Thread Operating System
/ | \ 3.1.0 build Jun 16 2019
2006 - 2018 Copyright by rt-thread team

硬件本身没问题 烧了个裸机程序,波特率115200 都可以进行收发



通过配置finsh 将串口设置到usart2,出现以下问题:
1. 配置完之后,将串口波特率设置为9600 可以有打印信息,但是高于9600 输出乱码或打印数据不全

2. 串口配置波特率9600 之后,在应用里面打印 信息,没有打印信息显示,程序跟踪到
while (!(uart->uart_device->SR & USART_FLAG_TXE)){}
uart->uart_device->DR = c;
都没问题


3. 往finsh输入数据,可以读取到该数据,但是回显的信息还是没有,跟2的原因应该一样的
app程序如下:


void rt_init_thread_entry(void* parameter)
{
/* initialization RT-Thread Components */
rt_components_init();

/* GDB STUB */
#ifdef RT_USING_GDB
gdb_set_device("uart6");
gdb_start();
#endif
while(1)
{
rt_kprintf("111"); // 在串口中显示不出来
}
}



终端显示如下
1560669695(1).png




实在找不到原因了 求大神帮忙!!!!!!!!!


查看更多

关注者
0
被浏览
652
5 个回答
flyboy
flyboy 2019-06-17
uart1 没问题吗,只是 uart2 有问题?
noerr
noerr 2019-06-18
flyboy 发表于 2019-6-17 17:13
uart1 没问题吗,只是 uart2 有问题?


uart1 不方便用 - - 所以用了串口2
tyustli
tyustli 2019-06-18
1、串口波特率在程序中是否设置为对应的波特率
2、
while(1)
{
rt_kprintf("111"); // 在串口中显示不出来
}

这一段程序是一个死循环,线程已经无法切换,所以串口无法使用
noerr
noerr 2019-06-18
    本帖最后由 noerr 于 2019-6-18 12:31 编辑


tyustli 发表于 2019-6-18 09:34
1、串口波特率在程序中是否设置为对应的波特率
2、


1. 波特率默认在这里配置
1560831701(1).png



2.
while(1)
{
rt_kprintf("111");
}

这句话 我已经跟踪到这里了
1560831912(1).jpg
另外 我把这个while(1) 去掉 串口接收OK 但是无法输出 的情况



撰写答案

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

发布
问题

分享
好友