780|1

7046

帖子

11

TA的资源

版主

楼主
 

【CW32L052评测】串口驱动 [复制链接]

 
  1. 新建bsp文件夹,在其下面新建uart文件夹,下面新建uart.c/uart.h
  2. 工程中新建BSP/uart分组,添加uart.c到工程下面:
  3. 添加文件的头文件引用:
  4. 串口k通信的UARTIO选择PF04、PF05 UART1来进行通信。从用户手册查到端口复用为AF!:
  5. 建立uart1初始化代码如下:
    void uart1_init(void)
    {
    uint32_t PCLK_Freq;
    GPIO_InitTypeDef GPIO_InitStructure = {0};
    UART_InitTypeDef UART_InitStructure = {0};
    /* 开始 PF端口时钟 */
    __RCC_GPIOF_CLK_ENABLE();

    /* 使用UART1 时钟 */
    __RCC_UART1_CLK_ENABLE();

    /* 复用GPIOF04-05 */
    PF04_AFx_UART1TXD();
    PF05_AFx_UART1RXD();

    /* 初始化TX IO */
    GPIO_InitStructure.Pins = GPIO_PIN_4;
    GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_Init(CW_GPIOF, &GPIO_InitStructure);

    /* 初始化RX IO */
    GPIO_InitStructure.Pins = GPIO_PIN_5;
    GPIO_InitStructure.Mode = GPIO_MODE_INPUT_PULLUP;
    GPIO_Init(CW_GPIOF, &GPIO_InitStructure);

    PCLK_Freq = SystemCoreClock >> pow2_table[CW_SYSCTRL->CR0_f.HCLKPRS];
    PCLK_Freq >>= pow2_table[CW_SYSCTRL->CR0_f.PCLKPRS];

    UART_InitStructure.UART_BaudRate = 115200;
    UART_InitStructure.UART_Over = UART_Over_16;
    UART_InitStructure.UART_Source = UART_Source_PCLK;
    UART_InitStructure.UART_UclkFreq = PCLK_Freq;
    UART_InitStructure.UART_StartBit = UART_StartBit_FE;
    UART_InitStructure.UART_StopBits = UART_StopBits_1;
    UART_InitStructure.UART_Parity = UART_Parity_No;
    UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_None;
    UART_InitStructure.UART_Mode = UART_Mode_Rx | UART_Mode_Tx;

    UART_Init(CW_UART1, &UART_InitStructure);

    /* 使能 UART中断 */
    NVIC_SetPriority(UART1_IRQn, 0);
    NVIC_EnableIRQ(UART1_IRQn);

    UART_ITConfig(CW_UART1, UART_IT_RC, ENABLE);

    }
  6. 主程序先初始化uart1,然后加入发送函数,测试是否初始化成功:
  7. 打开串口助手,下载后成功的获取到串口输出的信息:

致此串口驱动成功!

最新回复

这个CW32L052串口驱动,从用户手册查到端口复用为AF!这个是技术点   详情 回复 发表于 2023-7-16 22:14
点赞 关注
 
 

回复
举报

1704

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 

这个CW32L052串口驱动,从用户手册查到端口复用为AF!这个是技术点

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表