full_stack 发表于 2022-6-7 02:27

【平头哥RVB2601创意应用开发】配置串口1 UART1输出

<p>项目中要用到串口输入输出,翻了下论坛竟然没有一篇写配置串口1的,只能自己写了。</p>

<p>仅仅写个测试程序,能让串口1输出数据就行。</p>

<p>根据原理图</p>

<p>PA28是串口一的TX</p>

<p>现在写个程序,让串口一输出数据,CDK的串口接收并显示在串口助手中。</p>

<p></p>

<p>&nbsp;</p>

<p>实物这样接线,拔掉跳线帽之后,串口就不能接收到日志信息了。</p>

<p>&nbsp;</p>

<p></p>

<p>在board_yoc_init初始化函数中增加串口1的初始化函数。</p>

<pre>
<code class="language-cpp">void board_yoc_init(void)
{
    board_init();
    event_service_init(NULL);
    console_init(CONSOLE_UART_IDX, 115200, 512);
        uart1_init();
    ulog_init();
    aos_set_log_level(AOS_LL_DEBUG);

    int ret = partition_init();
    if (ret &lt;= 0) {
      LOGE(TAG, "partition init failed");
    } else {
      LOGI(TAG, "find %d partitions", ret);
    }

    aos_kv_init("kv");
    snd_card_alkaid_register(NULL);
    network_init();

    board_cli_init();
}</code></pre>

<p>仿照串口0的函数,增加的串口1的初始化函数</p>

<pre>
<code class="language-cpp">void uart1_init(void)
{
    int rc;
        csi_pin_set_mux(PA28, PA28_UART1_TX);
        csi_pin_set_mux(PA27, PA27_UART1_RX);
    aos_mutex_new(&amp;g_console_mutex_handle1);

    _uart1.port                = TEST_USART_IDX;
    _uart1.config.baud_rate    = 115200;
    _uart1.config.mode         = MODE_TX_RX;
    _uart1.config.flow_control = FLOW_CONTROL_DISABLED;
    _uart1.config.stop_bits    = STOP_BITS_1;
    _uart1.config.parity       = NO_PARITY;
    _uart1.config.data_width   = DATA_WIDTH_8BIT;

    rc = hal_uart_init(&amp;_uart1);
    if (rc == 0) {
      g_console_handle1 = &amp;_uart1;
      g_console_buf_size1 = 512;
    }
}</code></pre>

<p>在main函数中增加一个任务,定时调用串口1发送函数</p>

<pre>
<code class="language-cpp">void uart1_send_data(void)
{
       
        hal_uart_send(&amp;_uart1, "ssk\r\n", 5, AOS_WAIT_FOREVER);
       LOGD(TAG, "Send at cmd1 ok\r\n");
}</code></pre>

<p>实现了定时从串口1打印数据,串口1的TX直接接到了CP2012的RX脚,因此会在串口窗口中显示。</p>

<p></p>

<p>仅仅一个小测试,代码写的不是很严谨,仅供有需要使用串口1的同学参考。</p>

lugl4313820 发表于 2022-6-7 08:35

日志输出不就是串口1吗?

full_stack 发表于 2022-6-7 23:05

lugl4313820 发表于 2022-6-7 08:35
日志输出不就是串口1吗?

<p>那是串口0</p>

lugl4313820 发表于 2022-6-8 07:48

<p>我原来配置串口1以后,就烧不进程序了,不知道你的还好?</p>

full_stack 发表于 2022-6-8 11:20

lugl4313820 发表于 2022-6-8 07:48
我原来配置串口1以后,就烧不进程序了,不知道你的还好?

<p>没问题</p>
页: [1]
查看完整版本: 【平头哥RVB2601创意应用开发】配置串口1 UART1输出