[RISC-V MCU 应用开发] 沁恒CH585的串口通讯

[复制链接]
35|0
天体书记 发表于 2025-10-25 20:31 | 显示全部楼层 |阅读模式

沁恒CH585的串口通讯

沁恒CH585是沁恒公司自主研发的基于青稞RISC-V内核系列芯片,以BLE无线通讯,NFC,USB通讯为主,但今天我们先调试一下其串口,在后面的调试其它外设时可以做为调试结果,日志输出使用。

我们本次选择Usart1外设,它的引脚是PA8和PA9。

CH585串口引脚.jpg

接下我们软件初始化串口配置。

首先配置GPIO配置:

/* 配置串口1:先配置IO口模式,再配置串口 */
    GPIOA_SetBits(GPIO_Pin_9);
    GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);      // RXD-配置上拉输入
    GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA); // TXD-配置推挽输出,注意先让IO口输出高电平

接下来再配置Usart的配置

UART1_DefInit();	/* initial uart1 with 115200bps

我们直接调试此API,如果有其它波特率的配置的话,调用 void UART0_BaudRateCfg(uint32_t baudrate)即可。

配置完成之后,就可以调用 void UART0_SendString(uint8_t *buf, uint16_t l)函数来输出串口数据。测试源代码如下:

int main()
{
    uint8_t len;

    HSECFG_Capacitance(HSECap_18p);
    SetSysClock(CLK_SOURCE_HSE_PLL_62_4MHz);

    GPIOA_SetBits(GPIO_Pin_9);
    GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);      // RXD-配置上拉输入
    GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA); // TXD-配置推挽输出,注意先让IO口输出高电平
    UART1_DefInit();
    UART1_SendString(uart_inst.txbuf, uart_inst.txbuf.tx_len);
}

这里要提示一下,官方代码库中的 UART1_SendString字面意义是发送字符串,但其实其只是发送一定数据长度,其实现并没有字符串的判尾操作,所以,发送长度才是结束发送的关键参数。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

43

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部