树莓派Pico_串口

本串口程序程序默认uart0

 程序调用链:

        stdio_init_all -> stdio_uart_init -> uart_init 


#include <stdio.h>
#include "pico/stdlib.h"

int main() {
    stdio_init_all();
    while (true) {
        printf("Hello, world!\n");
        sleep_ms(1000);
    }
}
bool stdio_init_all(void) {
    // todo add explicit custom, or registered although you can call stdio_enable_driver explicitly anyway
    // These are well known ones

    bool rc = false;
#if LIB_PICO_STDIO_UART
    stdio_uart_init();
    rc = true;
#endif

#if LIB_PICO_STDIO_SEMIHOSTING
    stdio_semihosting_init();
    rc = true;
#endif

#if LIB_PICO_STDIO_USB
    rc |= stdio_usb_init();
#endif
    return rc;
}
void stdio_uart_init() {
    uart_init(uart_default, 0);
}

 此处uart_default被定义为:#define  uart_default  uart0

在uart_init函数里面进行uart参数的初始化

uint uart_init(uart_inst_t *uart, uint baudrate) {
    invalid_params_if(UART, uart != uart0 && uart != uart1);

    if (clock_get_hz(clk_peri) == 0) {
        return 0;
    }

    uart_reset(uart);
    uart_unreset(uart);

#if PICO_UART_ENABLE_CRLF_SUPPORT
    uart_set_translate_crlf(uart, PICO_UART_DEFAULT_CRLF);
#endif

    // Any LCR writes need to take place before enabling the UART
    uint baud = uart_set_baudrate(uart, baudrate);
    uart_set_format(uart, 8, 1, UART_PARITY_NONE);

    // Enable FIFOs (must be before setting UARTEN, as this is an LCR access)
    hw_set_bits(&uart_get_hw(uart)->lcr_h, UART_UARTLCR_H_FEN_BITS);
    // Enable the UART, both TX and RX
    uart_get_hw(uart)->cr = UART_UARTCR_UARTEN_BITS | UART_UARTCR_TXE_BITS | UART_UARTCR_RXE_BITS;
    // Always enable DREQ signals -- no harm in this if DMA is not listening
    uart_get_hw(uart)->dmacr = UART_UARTDMACR_TXDMAE_BITS | UART_UARTDMACR_RXDMAE_BITS;

    return baud;
}

测试:需要连接usb->ttl串口模块,波特率设置为115200,至于为什么,自己分析源码吧,我这就不在分析了,打开串口调试助手就可以看到打印的信息了

麻烦点个关注了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
树莓派 Pico 可以通过 UART(通用异步收发传输)串口进行通信。UART 是一种常见的串口通信协议,用于在设备之间传输数据。在 Pico 上,你可以通过连接 Pico 的 GPIO 引脚来实现 UART 串口通信。 首先,你需要确保树莓派 Pico 的 MicroPython 源码已经下载到 Pico 上。然后,你可以通过将 Pico 的 USB 接口连接到计算机,并使用串口调试助手等工具来进行串口操作。 在 Pico 上,UART 串口通信可以通过将 GPIO 引脚配置为 UART 模式来实现。你可以使用 MicroPython 的代码来配置和控制 UART 串口通信。以下是一个示例代码: ```python import machine # 配置 UART uart = machine.UART(0, baudrate=115200) # 选择 UART0,波特率为 115200 # 读取数据 while True: if uart.any(): data = uart.read() # 处理接收到的数据 # 发送数据 # uart.write('Hello, world!') ``` 在这个示例代码中,首先通过 `machine.UART()` 函数来配置 UART。需要指定 UART 的编号(例如 `0`)和波特率(例如 `115200`)。然后,通过 `uart.read()` 函数来读取串口接收到的数据,并可以使用 `uart.write()` 函数来发送数据。 请注意,以上示例代码仅供参考,具体的 UART 配置和使用方法可能会因不同的应用场景而有所不同。你需要根据自己的需求来进行相应的配置和操作。希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值