0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AS32X601驱动系列教程 USART_串口通讯详解

安芯 来源:jf_29981791 作者:jf_29981791 2025-05-23 16:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

国科安芯的AS32系列MCU芯片集成7路USART,能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准 NRZ 异步串行数据格式的要求。USART 通过小数波特率发生器实现了多种波特率。 USART 不仅支持同步单向通信和半双工单线通信,以及 LIN(局域互连网络)和调制解调器操作 (CTS/RTS) 通过配置多个缓冲区使用 DMA(直接存储器访问)可实现高速数据通信,其通信数据格式如下:

硬件设计

评估板板载了一颗CH340 usb转ttl芯片用于串口通讯验证,串口接在MCU串口0,对外通过usbmini标准接口上位机连接。

软件设计

本小节实现上位机与板卡的双向数据收发,板卡接收上位机数据,并原数据返回。

初始化流程

Ø 使能USART以及对应gpio时钟

Ø 配置gpio复用为usart功能

Ø 初始化gpio结构体

Ø 初始化usart结构体

Ø 调用库函数实现收发

代码分析

首先进行串口初始化,在Bsp文件夹中新建新建print.c和print.h,之后添加到工程目录下,在log.c中添加初始化代码:

  1. void User_Print_Init(uint32_t BaudRate)
  2. {
  3. USART_InitTypeDef USART_InitStructure;
  4. GPIO_InitTypeDef GPIO_InitStructure;
  5. GPIOD_CLK_ENABLE();
  6. USART0_CLK_ENABLE();
  7. / Set GPIO multiplex mapping /
  8. GPIO_PinAFConfig(GPIOD, GPIO_PinSource8, GPIO_AF_USART0); / USART0_TX /
  9. GPIO_PinAFConfig(GPIOD, GPIO_PinSource9, GPIO_AF_USART0); / USART0_RX /
  10. / GPIO Configure /
  11. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  12. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  13. GPIO_InitStructure.GPIO_OType = GPIO_Out_PP;
  14. GPIO_InitStructure.GPIO_OStrength = GPIO_OStrength_4_5mA;
  15. GPIO_Init(GPIOD, &GPIO_InitStructure);
  16. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  17. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  18. GPIO_InitStructure.GPIO_IType = GPIO_IN_FLOATING;
  19. GPIO_InitStructure.GPIO_OStrength = GPIO_OStrength_4_5mA;
  20. GPIO_Init(GPIOD, &GPIO_InitStructure);
  21. USART_DeInit(USART0);
  22. USART_StructInit(&USART_InitStructure);
  23. / Initializes the USART0 /
  24. USART_InitStructure.USART_BaudRate = BaudRate;
  25. USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  26. USART_InitStructure.USART_StopBits = USART_StopBits_1;
  27. USART_InitStructure.USART_Parity = USART_Parity_No;
  28. USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  29. USART_InitStructure.USART_OverSampling = USART_OverSampling_16;
  30. USART_Init(USART0, &USART_InitStructure);
  31. USART_Cmd(USART0, ENABLE);
  32. }

首先,我们设置了一个形参用于配置串口通讯波特率,该波特率计算同样是通过系统时钟初始化所读取的总线时钟函数提供计算基础,因此当使用串口时,切勿漏掉该函数,否则需要手动输入时钟进行计算。

之后开启GPIOD和USART0的外设时钟,注意,在此之前不要忘了在系统时钟初始化中开启两个外设挂载的总线时钟。

然后调用库函数配置两个管脚复用为串口功能,然后初始化TX引脚为推挽输出,RX管脚为浮空输入。

最后配置USART0初始化结构体,功能配置为8位数据位,1位停止位,无校验,使能串口。

  1. while(1)
  2. {
  3. if(SET == USART_GetFlagStatus(USART0, USART_FLAG_RXFNE))
  4. {
  5. usart_data = USART_ReceiveData(USART0);
  6. USART_SendData(USART0,usart_data);
  7. }
  8. }

在主函数中,循环检测接收状态,当接收到数据时,调用接收函数读取数据,并通过串口发送函数原路返回。

除此之外,串口可通过中断方式和DMA方式进行数据收发,具体操作在中断和DMA章节进行具体介绍。

评估板验证

编译烧录代码,打开串口调试工具并连接串口线,观察最终效果。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动
    +关注

    关注

    12

    文章

    1922

    浏览量

    87310
  • 串口通讯
    +关注

    关注

    1

    文章

    265

    浏览量

    25705
  • dma
    dma
    +关注

    关注

    3

    文章

    576

    浏览量

    103774
  • USART
    +关注

    关注

    1

    文章

    201

    浏览量

    32200
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于 AS32X601 微控制器的定时器模块(TIM)技术研究与应用实践

    摘要: 本文全面介绍了国科安芯推出的AS32X601系列微控制器的定时器模块(TIM),包括其系统架构、功能特性、应用场景以及工程实践要点。通过对芯片的详细分析,揭示了其高性能运行的基础。本文详细
    的头像 发表于 08-19 16:44 165次阅读

    AS32X601芯片Flash擦写调试技术解析

    本文聚焦于 国科安芯推出的AS32X601 芯片的 Flash 擦写调试工作,深入剖析其片内 Flash 存储器架构,详述 Flash 控制器功能与运作机制。通过对 Flash 指令集的解读,梳理
    的头像 发表于 07-22 13:47 212次阅读
    <b class='flag-5'>AS32X601</b>芯片Flash擦写调试技术解析

    AS32X601系列MCU硬件最小系统设计与调试方案探析

    推出的AS32X601 系列 MCU 为例,深入探讨硬件最小系统设计要点以及硬件调试方案,旨在为相关领域的研究人员和技术人员提供有价值的参考。
    的头像 发表于 07-22 13:46 194次阅读

    第十四章 USART——串口通讯

    本章介绍了USART串口通讯,含物理层(RS-232、TTL电平)、协议层(波特率、数据帧),及W55MH32的USART功能与应用。
    的头像 发表于 06-14 16:30 1117次阅读
    第十四章 <b class='flag-5'>USART</b>——<b class='flag-5'>串口</b><b class='flag-5'>通讯</b>

    EtherCAT主站转Profinet网关接禾川伺服X4E系列通讯案例

    在工业自动化领域,不同通讯协议之间的互联互通一直是一个关键问题。当面临将EtherCAT主站转为Profinet协议,并与禾川伺服驱动X4E进行高效通讯的需求时,一款性能卓越的网关就
    的头像 发表于 06-10 13:04 264次阅读
    EtherCAT主站转Profinet网关接禾川伺服<b class='flag-5'>X</b>4E<b class='flag-5'>系列</b><b class='flag-5'>通讯</b>案例

    AS32X601驱动系列教程 PLIC_中断应用详解

    连到PLIC,PLIC统一管理并输出中断请求到内核。 硬件设计 本节硬件同USART章节一致。 软件设计 代码分析 在之前的按键章节我们已经对AS32的中断进行了简单实用,本节将用串口的接收中断实验
    的头像 发表于 05-23 17:10 277次阅读
    <b class='flag-5'>AS32X601</b><b class='flag-5'>驱动</b><b class='flag-5'>系列</b>教程 PLIC_中断应用<b class='flag-5'>详解</b>

    AS32X601驱动系列教程 GPIO_按键检测详解

    在嵌入式系统开发中,GPIO(通用输入输出端口)是实现硬件与软件交互的关键组件。本节主要利用的时GPIO的输入采集功能,本节的主要功能为,读取板载按键,当按键按下时,对应led亮起,抬起按键,对应led熄灭。 硬件设计 评估板板载三个机械按键,分别接入MCU的PE10、PB4、PB3,当按键按下时,控制引脚通过按键接地,表现为低电平,当按键抬起时,io通过电阻连接到VCC,此时表现为高电平。 软件设计 代码分析 本节主要验证GPIO的输入功能,所不同的是
    的头像 发表于 05-23 16:44 373次阅读
    <b class='flag-5'>AS32X601</b><b class='flag-5'>驱动</b><b class='flag-5'>系列</b>教程 GPIO_按键检测<b class='flag-5'>详解</b>

    AS32X601驱动系列教程 GPIO_点亮LED详解

    的大门。自本章开始,正式开始用代码控制AS32x601各外设完成功能配置。 需要注意的是,AS32X601提供了8组GPIO,其中GPIOA~GPIOG寄存器操作完全一致,但在使用GPIOH的时候,寄存器列表中间少了一个32位寄存器,因此在使用过程中容易造成误操作,我们在
    的头像 发表于 05-23 16:14 297次阅读
    <b class='flag-5'>AS32X601</b><b class='flag-5'>驱动</b><b class='flag-5'>系列</b>教程 GPIO_点亮LED<b class='flag-5'>详解</b>

    AS32X601驱动系列教程 SMU_系统时钟详解

    时钟和复位的管理。在默认状态下SMU工作在IDLE状态。只有接收到PMU的使能信号后才开始工作。SMU模块会根据PMU的指令自动配置COR、AXIBUS0/1/2等总线的时钟和复位。 需要注意的是,MCU芯片AS32X601可通过BOOT选择从外部QSPI Flash启动和内部PFlash启动,
    的头像 发表于 05-23 16:01 410次阅读
    <b class='flag-5'>AS32X601</b><b class='flag-5'>驱动</b><b class='flag-5'>系列</b>教程 SMU_系统时钟<b class='flag-5'>详解</b>

    面向工业与汽车领域的高安全可靠MCU——AS32X601系列芯片解析

    AS32X601系列是国科安芯研发的32位RISC-V架构MCU,专为高安全性、高可靠性场景设计,覆盖工业控制、汽车电子等关键领域。其核心优势在于通过硬件级安全机制、多重冗余设计及功能安全认证,满足
    的头像 发表于 03-14 16:40 602次阅读

    AS32X601芯片技术剖析

    芯片简介 AS32X601系列MCU是国产高可靠嵌入式处理器的重要突破,其企业宇航级型号AS32S601针对空间辐射环境与极端温度条件优化,满足卫星载荷控制、航天器运动控制等场景需求。该芯片采用
    的头像 发表于 03-14 16:17 610次阅读

    AS32X601双核锁步MCU技术优势分析

    AS32X601是国科安芯公司研制的一系列基于32位RISC-V指令集车规级MCU处理器芯片。主频高达180MHz,支持双核锁步架构,基于软错误防护技术加持,显著提高芯片安全性能。产品具有高安全、低
    的头像 发表于 03-07 16:12 527次阅读

    USB串口驱动

    USB串口驱动
    发表于 02-10 13:49 3次下载

    串口通讯隔离器的定义与作用

      在现代工业自动化、通信系统和嵌入式设备中,串口通讯(Serial Communication)是一种常见的数据传输方式。由于其简单、可靠且成本低廉,串口通讯被广泛应用于各种设备之间
    的头像 发表于 02-06 16:01 1507次阅读

    CP210X串口驱动

    电子发烧友网站提供《CP210X串口驱动.zip》资料免费下载
    发表于 10-17 13:40 20次下载