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

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

3天内不再提示

STM32CubeMX生成的代码中串口如何发送数据?

撞上电子 2025-01-13 21:02 次阅读

第一节 硬件解读

大家的开发板到手之后,可以看见,只有一个USB口,那个口就是串口,开发板A和开发板B共用一个串口,通过按键切换。

我们以开发板A为例,原理图如下:

a120974e-d1ae-11ef-9434-92fbcf53809c.png

开发板A芯片上面的PA2和PA3分别是NODEA_USART_TX和NODEA_USART_RX,而开发板A和Debugger开发板的连接如下:

a139f266-d1ae-11ef-9434-92fbcf53809c.png

a14d66c0-d1ae-11ef-9434-92fbcf53809c.png

通过查看CH443K芯片的引脚可以得到,SEL引脚的高低电平,可以让CH443K芯片在1脚4脚连接或者3脚4脚连接中选择。CH443K芯片引脚说明如下:

a1606f72-d1ae-11ef-9434-92fbcf53809c.png

当CH443K芯片的SEL为高电平时,其芯片COM和CH1引脚导通。DEBUGGER_TX和B_TX导通,DEBUGGER_RX和B_RX导通;反之DEBUGGER_TX和A_TX导通,DEBUGGER_RX和A_RX导通。

那么,DEBUGGER_TX和DEBUGGER_RX连接在哪?当然是DAPLINK板的MCU上面啦,如下图:

a177debe-d1ae-11ef-9434-92fbcf53809c.png

连接到Debugger板的MCU之后,这个MCU通过内部程序(不需要我们写,比赛的时候已经写好了)转到唯一的USB口上,也就是我们的串口上。

a1870d12-d1ae-11ef-9434-92fbcf53809c.png

第二节 CuebMX的配置

第一步:选择PA2的引脚的USART2_Tx功能,如下图:

a1a18ce6-d1ae-11ef-9434-92fbcf53809c.png

第二步:选择PA3引脚的USART_RX功能,如下图:

a1bb1e2c-d1ae-11ef-9434-92fbcf53809c.png

第三步:发现USART相关的引脚是黄色的,不是绿色的,这是为什么呢?注意:黄色是异常提醒,绿色是正常的。

a1d1c0a0-d1ae-11ef-9434-92fbcf53809c.png

第四步:如下图配置USART2。注意:2代表的是异步全双工通信;6代表波特率,数据长度,校验位和停止位。这里波特率是115200,比赛基本上都是9600。

a1da9c5c-d1ae-11ef-9434-92fbcf53809c.png

其中:具体Mode配置信息如下:

Mode:代表串口模式,配置为(异步)Asynchronous,(同步主机)Synchronous Master,(同步从机)Synchronous Slave,(单线半双工)Single Wire (Half - Duplex),(多处理器通信)Multiprocessor Communication,(红外通讯)IrDA ,(局域互联网模式)LIN ,(智能卡模式)SmartCard ;

Hard Flow Control RS232:代表RS232的硬件控制流,常用引脚为CTS,RTC,CTS/RTS或者Disabled;

Hard Flow Control RS485:代表RS485的硬件控制流;

其中:具体Configuration配置信息如下:

Baud Rate:代表串口波特率,常用波特率为9600,115200等;

Word Length:代表字节位,常用字节为:7位,8位或者9位;

Parity:代表校验位;常用为:(无校验)None,(奇校验)Even或者Odd(偶校验)Odd;

Stop Bits:代表停止位,常用为:0.5,1,1.5或者2;

Data Direction:代表数据传输方向,常用为(发送和接收)Receive and Transmit,(接收)Receive或者(发送)Transmit;

Over Sampling:代表过采样,常用为8倍采样和16倍采样,8倍采样,也就是一个数据位采样8次,16倍则是16次。采样率高精度会高一些,当然相应的功耗也会变高;

Single Sample:代表单次采样,使能时使用单次采样值,否则使用三次采样值。前面的过采样会有8或16次采样值,当选择单次采样时,会使用其中的一次采样值作为数据位逻辑电平的结果。三次采样则用三次采样的判断结果为准。同样三次采样也是为了确保数据的准确性。

ClockPrescaler:代表时钟预分频器;

Fifo Mode:代表数据缓存模式;

Txfifo Threshold:代表发送数据的阈值;

Rxfifo Threshold:代表接收数据的阈值;

Auto Baudrate:代表自动波特率,顾名思义,可以根据接收到的数据进行波特率自适应;

TX Pin Active Level Inversion:代表发送电平反转,发送引脚电平极性反转,正常情况下空闲电平为高电平,使能该功能后变成空闲电平为低电平;

RX Pin Active Level Inversion:代表接收电平反转,接收引脚电平极性反转,正常情况下空闲电平为高电平,使能该功能后变成空闲电平为低电平;

Data Inversion:代表数据电平反转收发数据的逻辑电平极性反转,正常是高电平为逻辑1,低电平为逻辑0,使能该功能后则变成低电平为逻辑1,高电平为逻辑0。校验位也随着反转;

TX and RX Pins Swapping:代表收发引脚互换,接收和发送引脚互换,适用于外部硬件连线错误时进行切换。

Overrun:代表溢出检测,:用于开启接收溢出检测,使用该功能后,当接收数据未取出时,又接收到一个数据,此时会触发一个溢出标志。

DMA on RX Error:代表接收错误时不禁用DMA,使能该功能后,即使出现接收错误也不会关闭DMA传输;

MSB First:代表数据高位先发,正常数据是先发低位再发高位,使能该功能后可以先发高位数据;

第三节 MDK代码

第一步:编写串口发送函数,如下图:

a1f60cee-d1ae-11ef-9434-92fbcf53809c.png

第二步:声明串口发送函数,如下图:

a20c40cc-d1ae-11ef-9434-92fbcf53809c.png

第三步:编写主函数,如下图:

a219ef88-d1ae-11ef-9434-92fbcf53809c.png

第四步,配置MicroLIB库,如下:【注意:不使用printf,可以不配置;如果使用printf但是不配置,程序将卡死】

a22d861a-d1ae-11ef-9434-92fbcf53809c.png

第五步:配置好下载器之后,编译代码,下载即可。

第六步:打开串口软件,如下图配置:选择串口号;接收缓存区选择HEX模式,波特率选择115200;串口号请扫描,选择正确的串口号,不一定是COM4;最后打开串口。

a2467242-d1ae-11ef-9434-92fbcf53809c.png    

第四节 实验现象

注意:

1,请用USB线连接电脑与开发板;

2,请选择A开发板;

3,一定要勾选微库。

现象:

1,串口发送以115200波特率发送数据。

来源:撞上电子微信公众号

版权:东莞市东城墨竹公子电子工作室

日期:2024.11.13

第五节 课后作业

利用按键,串口打印按键按下的次数。

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

    关注

    2271

    文章

    10923

    浏览量

    357225
  • 串口
    +关注

    关注

    14

    文章

    1557

    浏览量

    76922
  • 开发板
    +关注

    关注

    25

    文章

    5121

    浏览量

    98038
收藏 人收藏

    相关推荐

    STM32CubeMx入门教程(4):PWM应用

    导语“使用STM32CubeMx配置定时器输出PWM波,生成初始化代码。”
    发表于 07-11 15:23 2565次阅读
    <b class='flag-5'>STM32CubeMx</b>入门教程(4):PWM应用

    请问simulink/STM32CubeMX如何联合生成STM32串口发送代码

    请问simulink/STM32CubeMX如何联合生成STM32串口发送代码
    发表于 11-19 06:46

    STM32cubeMX串口使用教程免费下载

    本文档的主要内容详细介绍的是STM32cubeMX串口使用教程免费下载。
    发表于 12-03 11:31 29次下载
    <b class='flag-5'>STM32cubeMX</b>的<b class='flag-5'>串口</b>使用教程免费下载

    STM32CUBEMX配置教程(八)STM32串口轮询发送中断接收+重定义+优化

    有些遗忘,因此写下这一系列教程以供记忆,顺便让我这个大萌新给广大小萌新提供一些学习帮助。此次工程效果:串口115200波特率,接收串口助手XCOM发送数据
    发表于 11-19 13:36 11次下载
    <b class='flag-5'>STM32CUBEMX</b>配置教程(八)<b class='flag-5'>STM32</b><b class='flag-5'>串口</b>轮询<b class='flag-5'>发送</b>中断接收+重定义+优化

    stm32CubeMX生成程序完成流水灯以及完成STM32的USART串口通讯程序实现STM32系统给上位机(win10)连续发送

    一、STM32CubeMX简介及安装STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C
    发表于 11-26 12:51 6次下载
    在 <b class='flag-5'>stm32CubeMX</b>下<b class='flag-5'>生成</b>程序完成流水灯以及完成<b class='flag-5'>STM32</b>的USART<b class='flag-5'>串口</b>通讯程序实现<b class='flag-5'>STM32</b>系统给上位机(win10)连续<b class='flag-5'>发送</b>“

    STM32F407的串口UART 基础配置STM32CubeMX

    STM32F407的串口UART 基础配置STM32CubeMX
    发表于 11-29 16:06 56次下载
    <b class='flag-5'>STM32</b>F407的<b class='flag-5'>串口</b>UART 基础配置<b class='flag-5'>STM32CubeMX</b>

    STM32CubeMX生成代码在SW4STM32下移植STemWin(CLion+CubeMX

    STM32CubeMX生成代码在SW4STM32下移植STemWin(CLion+CubeMX)文章目录
    发表于 12-04 14:36 12次下载
    <b class='flag-5'>STM32CubeMX</b><b class='flag-5'>生成</b><b class='flag-5'>代码</b>在SW4<b class='flag-5'>STM32</b>下移植STemWin(CLion+<b class='flag-5'>CubeMX</b>)

    使用STM32CubeMX简化编程以及串口通信和波形观察

    目录一、使用STM32CubeMX点亮流水灯1.准备工作2.用STM32CubeMX生成代码参数2.1配置环境2.2配置参数2.3在keil下添加亮灯
    发表于 12-06 20:21 11次下载
    使用<b class='flag-5'>STM32CubeMX</b>简化编程以及<b class='flag-5'>串口</b>通信和波形观察

    STM32CubeMX完成USART串口通信

    STM32CubeMX完成USART串口通信
    发表于 12-06 20:36 24次下载
    <b class='flag-5'>STM32CubeMX</b>完成USART<b class='flag-5'>串口</b>通信

    STM32CubeMX使用串口中断方式实现串口通信

    中断方式),要求:1)设置波特率为115200,1位停止位,无校验位;2)STM32系统给上位机(win10)连续发送“hello windows!”。win10采用“串口助手”工具接收二、C
    发表于 12-07 10:36 10次下载
    <b class='flag-5'>STM32CubeMX</b>使用<b class='flag-5'>串口</b>中断方式实现<b class='flag-5'>串口</b>通信

    STM32CubeMX HAL库串口+DMA数据发送不定长度数据接收,解决第一笔数据无法收发问题

    具:STM32CubeMX 6.01 生成代码DfuSe V3.0.6 DFU驱动STM32虚拟COM端口驱动程序 在App端需要用到USB虚拟
    发表于 12-20 19:36 2次下载
    <b class='flag-5'>STM32CubeMX</b> HAL库<b class='flag-5'>串口</b>+DMA<b class='flag-5'>数据</b><b class='flag-5'>发送</b>不定长度<b class='flag-5'>数据</b>接收,解决第一笔<b class='flag-5'>数据</b>无法收发问题

    STM32CUBEMX配置教程(九)STM32串口DMA收发数据

    ,因此写下这一系列教程以供记忆,顺便让我这个大萌新给广大小萌新提供一些学习帮助。此次工程效果:串口115200波特率,接收串口助手XCOM发送数据
    发表于 12-24 18:47 24次下载
    <b class='flag-5'>STM32CUBEMX</b>配置教程(九)<b class='flag-5'>STM32</b><b class='flag-5'>串口</b>DMA收发<b class='flag-5'>数据</b>

    STM32CubeMX实现串口通信(中断方式)

    这里写目录标题一、STM32CubeMX工程创建1、题目要求2、配置STM32CubeMX工程一、STM32CubeMX工程创建1、题目要求完成一个STM32的USART
    发表于 12-24 19:18 11次下载
    <b class='flag-5'>STM32CubeMX</b>实现<b class='flag-5'>串口</b>通信(中断方式)

    STM32CubeMX用于STM32配置并初始化C代码生成

    STM32CubeMX用于STM32配置 并初始化C代码生成.STM32CubeMXSTM32
    发表于 02-14 11:00 5次下载

    STM32CubeMX的配置和C代码生成

    电子发烧友网站提供《STM32CubeMX的配置和C代码生成.pdf》资料免费下载
    发表于 09-20 09:53 8次下载
    <b class='flag-5'>STM32CubeMX</b>的配置和C<b class='flag-5'>代码</b>的<b class='flag-5'>生成</b>