收藏官网首页

怎么用串口1 输出os_printf内容呢?

查看数: 42756 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-12-30 09:49

正文摘要:

本帖最后由 1112 于 2016-12-31 11:15 编辑 问题:怎么用串口1 输出os_printf内容呢? 1、我是这样尝试修改的: /** * @brief 程序入口函数 * 在该函数中完成用户相关的初始化 * @param none * @return none */ void IC ...

回复

Loading 发表于 2017-11-23 17:10:29
加入这段代码,我之前 测试过只加UART_SetPrintPort(UART1);这句不行
请加入下列代码
UART_ConfigTypeDef uart_config;
            uart_config.baud_rate    = BIT_RATE_74880;
            uart_config.data_bits     = UART_WordLength_8b;
            uart_config.parity          = USART_Parity_None;
            uart_config.stop_bits     = USART_StopBits_1;
            uart_config.flow_ctrl      = USART_HardwareFlowControl_None;
            uart_config.UART_RxFlowThresh = 120;
            uart_config.UART_InverseMask = UART_None_Inverse;
            UART_ParamConfig(UART1, &uart_config);
            UART_SetPrintPort(UART1);
就可以在TXD1引脚输出调试信息
1112 发表于 2016-12-30 21:49:41
本帖最后由 1112 于 2016-12-30 21:58 编辑
alex.lin 发表于 2016-12-30 19:21
GAgent esp8266 日志的debug 串口就已经是uart1 了。
楼主你修改了之后还是没输出,可能是你修改串口的设置 ...

我是直接拿宠物屋源码调试uart1的。改的地方如下:
user_init中
    uart_init_3(9600,115200);
    UART_SetPrintPort(1);
uart.c中  365行 去掉注释
    // install uart1 putc callback
    os_install_putc1((void *)uart1_write_char);//print output at UART1


其他地方都没动,但就是无法输出
alex.lin 发表于 2016-12-30 19:21:58
GAgent esp8266 日志的debug 串口就已经是uart1 了。
楼主你修改了之后还是没输出,可能是你修改串口的设置在机智云修改参数之前,所以最后还是被修改为机智云默认的参数了。
1112 发表于 2016-12-30 12:32:03
szuser 发表于 2016-12-30 12:25
ESP8266 开机时 是 74880, 然后就改为用户设定的值,

嗯,但是我这个按照文档改了,为啥还没有办法打印出内容呢?
szuser 发表于 2016-12-30 12:25:36
1112 发表于 2016-12-30 11:19
这确实也有点奇怪,但改成74880时 实际上已经输出上面我贴的内容,只是没有打印os_printf的内容 ...

ESP8266 开机时 是 74880, 然后就改为用户设定的值,
1112 发表于 2016-12-30 11:19:23
szuser 发表于 2016-12-30 10:27
前面是  设置 115200,  后面是用  74800 , 能输出吗

这确实也有点奇怪,但改成74880时 实际上已经输出上面我贴的内容,只是没有打印os_printf的内容

点评

ESP8266 开机时 是 74880, 然后就改为用户设定的值,  详情 回复 发表于 2016-12-30 12:25
1112 发表于 2016-12-30 10:48:01
本帖最后由 1112 于 2016-12-30 10:49 编辑
yCat 发表于 2016-12-30 10:17
参考一下第42点的os_printf这条函数~

看了文档了,我是这样改的:
  1. uart_init_3(UartBautRate uart0_br, UartBautRate uart1_br)
  2. {
  3.     // rom use 74880 baut_rate, here reinitialize
  4.     UartDev.baut_rate = uart0_br;
  5.     UartDev.exist_parity = STICK_PARITY_DIS;
  6.     UartDev.parity = NONE_BITS;
  7.     UartDev.stop_bits = ONE_STOP_BIT;
  8.     UartDev.data_bits = EIGHT_BITS;

  9.     uart_config(UART0);
  10.     UartDev.baut_rate = uart1_br;
  11.     uart_config(UART1);
  12.     ETS_UART_INTR_ENABLE();

  13.     // install uart1 putc callback//添加uart1
  14.     os_install_putc1((void *)uart1_write_char);//print output at UART1
  15. }
复制代码

  1. UART_SetPrintPort(uint8 uart_no)
  2. {
  3.     if(uart_no==1){
  4.       //  os_install_putc1(uart1_write_char);
  5.         os_install_putc1((void *)uart1_write_char); //添加uart1
  6.     }else{
  7.         /*option 1: do not wait if uart fifo is full,drop current character*/
  8.         os_install_putc1(uart0_write_char_no_wait);
  9.     /*option 2: wait for a while if uart fifo is full*/
  10.     os_install_putc1(uart0_write_char);
  11.     }
  12. }
复制代码


实测也没有正确输出。

szuser 发表于 2016-12-30 10:27:41
前面是  设置 115200,  后面是用  74800 , 能输出吗
yCat 发表于 2016-12-30 10:17:12
参考一下第42点的os_printf这条函数~

2c-esp8266_non_os_sdk_api_reference_cn.pdf

1.35 MB, 下载次数: 119, 下载积分: 威望 1

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

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