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

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

3天内不再提示

STM32G431之串口详解

嵌入式技术 来源:嵌入式技术 作者:嵌入式技术 2022-05-31 08:29 次阅读

1.串口简介

通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。使用多缓冲器配置的DMA方式,可以实现高速数据通信。

任何USART双向通信至少需要两个脚:接收数据输入(RX)和发送数据输出(TX)。

RX:接收数据串行输。通过过采样技术来区别数据和噪音,从而恢复数据。

TX:发送数据输出。当发送器被禁止时,输出引脚恢复到它的I/O端口配置。当发送器被激活,并且不发送数据时, TX引脚处于高电平。在单线和智能卡模式里,此I/O口被同时用于数据的发送和接收。

串口特性:

● 全双工的,异步通信
● NRZ标准格式
● 分数波特率发生器系统
─ 发送和接收共用的可编程波特率,最高达4.5Mbits/s
● 可编程数据字长度(8位或9位)
● 可配置的停止位-支持1 或2个停止位

2.硬件接口

在本开发板中,提供串口接口有两个,一个是普通串口USART1,一个是低功耗串口LPUART1。LPUART1可以通过32.768 kHz驱动,波特率可达9600bps,我们这以普通串口为例。

根据原理图,USART1_TX和PC4相连,USART1_RX和PC5相连。

poYBAGKVYYCAQzo8AANxhmKe1j8171.png#pic_center

3.串口配置

pYYBAGKVXZGAX15ZAAMcKYwnVUU522.pngpoYBAGKVXaGASG6YAACP6tLi_cM084.pngpYYBAGKVXbSAUq43AAJ2tliqR_k735.png

3.代码生成

poYBAGKVXeKAegB0AAQOlg8c6V0532.png

3.1 printf重定向实现

int fputc(int c, FILE *stream)
{
  huart1.Instance->TDR=c;
  while( !(huart1.Instance->ISR&1<<7)){}
  return c;
}

3.2 串口中断

STM32G431芯片有读数据寄存器RDR和发送数据寄存器TDR。

读数据寄存器RDR:

pYYBAGKVXtCAa9FBAAGOiBoiyao782.png

发送数据寄存器TDR:

pYYBAGKVXyyAL1GWAAIU_JISlzM202.png

void USART1_IRQHandler(void)
{
  /* USER CODE BEGIN USART1_IRQn 0 */
  uint8_t c;
  /* USER CODE END USART1_IRQn 0 */
  HAL_UART_IRQHandler(&huart1);
  /* USER CODE BEGIN USART1_IRQn 1 */
  c=huart1.Instance->RDR;//接收数据
  huart1.Instance->TDR=c;
  /* USER CODE END USART1_IRQn 1 */
}

3.3 主函数

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

    关注

    2266

    文章

    10871

    浏览量

    354786
  • 串口
    +关注

    关注

    14

    文章

    1543

    浏览量

    76185
  • USART
    +关注

    关注

    1

    文章

    195

    浏览量

    30790
  • HAL
    HAL
    +关注

    关注

    2

    文章

    70

    浏览量

    12593
收藏 人收藏

    评论

    相关推荐

    STM32CubeMX stm32g431 PLLP无法被设置是怎么回事?

    打扰了,没问题!ADC得设置成异步时钟! 使用了STM32CubeMX(6.9.1)开发stm32g431时,用cube配置始终,PLLP始终无法设置。我已启用了ADC1和ADC2,我想使用PLLP作为ADC12的时钟输入,但是框框是灰色。
    发表于 03-14 06:43

    STM32G431无法输出项目工程的原因?

    系统为 Win 7 64位,安装的Cube MX版本为6.8.0,现在需要用STM32G431开发工程,已经安装好了1.50版本的Package包文件,现在的问题是无法输出项目工程,输出工程的时候
    发表于 03-15 07:52

    stm32g431的PG10-NRST可以当普通IO吗?怎么设置?

    stm32g431的PG10-NRST可以当普通IO吗,怎么设置。
    发表于 03-20 08:09

    配置STM32G431的FDCAN为普通CAN模式,为什么不能接收数据?

    我这边配置STM32G431的FDCAN为普通CAN模式,配置如下,发送数据是成功的,其他板子也可以接收到发送的数据,但是G431却不能接收数据,帮忙看一下是什么问题,谢谢。
    发表于 03-25 08:31

    STM32F302K8U6和STM32G431中内置的运放 建立时间是多长?

    STM32F302K8U6 和STM32G431 中内置的运放 建立时间是多长? 在手册中未找到相关描述
    发表于 03-28 08:36

    STM32G431开发板免费试用

    STM32G431开发板高分辨率电源转换定时器内置各种功能,能够释放CPU资源并简化开发过程;模拟外设和转换器的性能显著提升;高速连接技术使外部事件响应速度快;支持最新的Power Delivery
    发表于 08-20 16:25

    STM32G431试用申请】STM32G431在模拟前端板的替代

    项目名称:STM32G431在模拟前端板的替代试用计划:申请理由:原来产品用的是stm32l100r8t6,希望申请这块板子来评估STM32G431性能项目名称及计划:STM32G431
    发表于 09-06 11:34

    求一个蓝桥杯大赛嵌入式组STM32G431资源包

    求一个蓝桥杯大赛嵌入式组STM32G431资源包
    发表于 10-12 17:57

    STM32G431串口通信怎么使用?

    STM32G431串口通信怎么使用?
    发表于 12-08 06:30

    STM32G431嵌入式设计相关资料下载

    前言笔者今年是第一次参加蓝桥杯,赛道为嵌入式设计,目前取得了国二的成绩,虽说不是最好,但从中学到了许多,收获了许多。今年我所使用的是STM32G431, 用的HAL库,这也是我第一次学习使用HAL库
    发表于 12-10 08:31

    STM32G431串口通信的使用步骤

    摘要本文章基于国信长天M4开发板,讲述了STM32G431 串口通信的使用步骤,祝各位学生蓝桥杯电子比赛取得好成绩!M4开发板 串口引脚由上图可以看出,DAP Link的串口连接在芯片
    发表于 01-11 07:21

    【合宙Air551G双频定位开发板试用体验】与STM32G431通信获取位置信息及LCD显示

    经过前面的与上位机测试之后,我着手做了合宙Air551G双频定位开发板与STM32G431的通信,并解析信息,获取位置,LCD显示等测试测试如下:此次测试利用STM32G431串口2
    发表于 03-29 18:50

    在什么温度下可以检测到STM32G431的TS_CAL2值呢?

    你好在什么温度下检测到 STM32G431 的 TS_CAL2 值?在数据表中报告为 130 度,而在库“stm32g4xx_ll_adc.h”中,TEMPSENSOR_CAL2_TEMP 为 110 度谢谢
    发表于 12-26 06:35

    如何用stm32g431 DMA方式更新周期信息?

    stm32g431 DMA方式更新周期信息。
    发表于 08-05 07:25

    如何使用STM32G431芯片做DAC应用

    有人使用STM32G431芯片做DAC应用,具体来说就是通过DMA将数据从指定内存传送给DAC数据寄存器,并由定时器触发DAC转换。他发现总是没法实现该功能。这里简单介绍下相关实现过程,并做些提醒
    的头像 发表于 09-12 10:08 5884次阅读