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

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

3天内不再提示

学习单片机和STM32的一道坎

STM32嵌入式开发 来源:STM32嵌入式开发 2023-01-17 15:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

刚开始学单片机的你,是不是会因用程序把LED点亮而感到高兴,会因用程序把数码管点亮而感到高兴。这是好事,这也是想继续学习下去的动力。

但是数据相关的实验是学习单片机和STM32的一道坎,此时就需要用好本文要说的串口这个调试工具串口通信介绍关于串口通信的介绍,也可以点击阅读之前发的一篇文章:STM32串口通信基本原理串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式......这种太过理论了,看似懂了,但又不懂。还是用我笔者自己的话来说吧。串口通信就是可以把程序在单片机或者STM32芯片中运行的结果发送到电脑的一种通信方式。1e8eec68-957e-11ed-bfe3-dac502259ad0.png1eb0fd3a-957e-11ed-bfe3-dac502259ad0.png如何使用串口通讯,你需要知道的几个重要的知识点:
  • 波特率,数据传输的速度,如上图设置为9600,那么程序中也要设置为9600
  • 硬件连接,接收、发送交叉连接,如上图TxD->RxD,RxD->TxD
  • 停止位
  • 奇偶校验
  • 硬件数据流
其中,后3项一般不需要改变。学会串口通信能做什么学过C语言的人都知道,程序开发需要不断调试不断验证。很多的语言编程软件都有很完整的程序调试功能。使用起来很方便。而我们的开发虽然也是用C语言,但我们的程序最终运行的环境不是在我们的开平台而是在真正的硬件系统中运行。这时想要查看程序的运行过程或者结果就不像编程软件那么方便了。想要解决这个问题,我们这时就可以借助串口通信来把我们需要知道的结果又或者是程序运行的关键步骤发送到电脑上,我们就知道程序在硬件系统中运行是否出现问题。51单片机可以用串口来调试,STM32可以用串口来调试,Linux开发板也是使用串口来调试。当你学会串口通信时,你可以开始玩WIFI模块、GSM模块、蓝牙模块、GPS模块、以及各种使用串口通信的传感器等等。有能力你还可以编写上位机软件通过串口通信来控制设备。串口通信需要什么如果你只有STM32核心板,那么你还需要一个串口转USB模块和一个串口数据接收软件还有几根杜邦线就可以了。如果你的是比较完整的一款开发板的话,一般都已经带有串口转USB模块,这样使用起来就更简单了。聪明的你是不是发现还缺少了点什么,对。没错因为还缺少了最重要的程序。想要使用串口通信当然还需要写串口通信的程序。下文就教你如何去用,而不是写。串口实验关于串口的实验,之前录过一个基于HAL库来实现的视频:STM32打印数据到串口助手 而下文中的实验基于标准库实现的,与HAL相比思路是一样的。在做一个实验时,最好把这个实验分割成几个关键的步骤,这样做的好处就是可以清晰的知道自己需要做什么,以及做完了哪些。还有哪些还没做。下面把串口实验分成几个关键的步骤:1)串口通信使用到的GPIO引脚配置 STM32F103系列的芯片一般都有三个串口以上,用来调试使用的串口一般都是使用USART1。其他的串口配置都是一样的。下面这段就是串口配置的程序:

1ecdebc0-957e-11ed-bfe3-dac502259ad0.png

串口使用的的GPIO口是PA9和PA10,所以只需配置这两个IO口的输入输出模式就可以了。2)串口主要参数设置(直接看程序)

1edd96e2-957e-11ed-bfe3-dac502259ad0.png

串口参数配置无法就是配置串口的波特率、数据格式、停止位、奇偶校验、硬件流、收发模式。除了波特率需要改变其他的参数都不需要管。直接复制拿来用。3)串口中断配置
串口如果使用中断接收,那么就需要配置串口的中断参数,配置项无法就是配置那个的中断源和中断的优先级。

1ef5d2d4-957e-11ed-bfe3-dac502259ad0.png

4)串口使能
就是你需要什么时候开始使用串口功能,就是一句原有的函数。

1f09a264-957e-11ed-bfe3-dac502259ad0.png

5)编写串口中断处理函数
使用库函数开发,所有的中断函数都是已经存在的,只是中断函数里面没有处理任何事情而已。中断函数如下:
1f1c03b4-957e-11ed-bfe3-dac502259ad0.png 完整的串口中断函数:

1f2f658a-957e-11ed-bfe3-dac502259ad0.png

串口数据的接收和发送的函数都是库函数提供的,想用时只需找到它直接拿来用就可以了。6)实验现象把程序编译烧写到STM32然后用串口转USB模块连接到电脑,在串口调试工具设置好波特率,打开串口。正常的话,那发送什么到STM32单片机,串口工具上就会收到什么。总结以上就完成了一个最简单的串口实验。本文章主要是说明串口的重要性,用来调试程序很方便。


审核编辑 :李倩


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

    关注

    2313

    文章

    11195

    浏览量

    374642
  • 51单片机
    +关注

    关注

    278

    文章

    5716

    浏览量

    135110
  • 串口
    +关注

    关注

    15

    文章

    1627

    浏览量

    83343

原文标题:学习STM32单片机,绕不开的串口

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机物联网项目实战:基于LVGL的智能火灾报警系统-基于STM32F103&ESP32-S3开发板(附教程/源码)

    基于STM32F103与ESP32-S3双核架构(STM32和ESP32是单片机初学的两大经典),今天为大家带来款了全面覆盖单片机物联网
    的头像 发表于 02-11 16:11 594次阅读
    <b class='flag-5'>单片机</b>物联网项目实战:基于LVGL的智能火灾报警系统-基于<b class='flag-5'>STM32</b>F103&amp;amp;ESP32-S3开发板(附教程/源码)

    单片机物联网项目实战:基于LVGL的智慧大棚农业系统-基于STM32F103&amp;amp;ESP32-S3开发板(附教程/源码)

    基于STM32F103与ESP32-S3双核架构(STM32和ESP32是单片机初学的两大经典),今天为大家带来款了全面覆盖单片机物联网
    的头像 发表于 02-11 15:50 396次阅读
    <b class='flag-5'>单片机</b>物联网项目实战:基于LVGL的智慧大棚农业系统-基于<b class='flag-5'>STM32</b>F103&amp;amp;ESP32-S3开发板(附教程/源码)

    嵌入式单片机开发学习路径

    的基本结构和工作原理。过去很多大学都是从51单片机开始学习,目前也有很多高校直接从STM32开始学习了。不管哪种方式,都能帮助你快速认识单片机
    发表于 02-09 15:42

    小白也能听懂的单片机知识路径

    、低功耗、丰富的外设资源以及强大的开发支持,逐渐成为市场的主流选择。对于想要深入学习单片机技术的你来说,STM32无疑是个不可多得的好平台。 S
    发表于 02-04 16:44

    学习单片机快速方法

    学习单片机的快速方法 先介绍下单片机。把单片机说成是电子信息类专业最重要的门课程点也不为过,
    发表于 01-14 07:42

    单片机和嵌入式,到底是什么关系?

    很多人初次接触嵌入式开发时,都会听到句话:“嵌入式其实就是单片机。”可当你真正开始学习时,会发现嵌入式和单片机虽然经常“捆绑”在起提,但
    的头像 发表于 11-14 10:28 2073次阅读
    <b class='flag-5'>单片机</b>和嵌入式,到底是什么关系?

    单片机的误区

    任何单片机程序的编写。根本就不要学去C语言的高级用法,即使你用C语言的最基础的语句能够完成程序的编写,底层运行的机制是学习重中之重! 等你积累自己编写定的代码量以后,你再回过头去学习
    发表于 11-14 07:46

    第1章如何学习单片机(1.3 1.4)

    1.3单片机学习的准备工作 1.足够的信心、恒心和耐心 有同学问我,单片机这门技术难不难。这个问题得从两个方面去分析。 首先,从战略上藐视它。那么多同学跟着老师学段时间就可以做出来小
    的头像 发表于 10-10 10:36 642次阅读
    第1章如何<b class='flag-5'>学习</b><b class='flag-5'>单片机</b>(1.3 1.4)

    第1章 如何学习单片机

    路在何方;也因为作者摸过烧红的铁块,烫了手,所以也可以告诉读者教训和代价是什么。希望各位都能站在作者的肩膀上,看得更远! 1.1学什么类型的单片机 单片机的型号那么多,如何选取款合适的进行
    的头像 发表于 10-10 10:32 662次阅读

    开发单片机需要学习什么?软件编程的 4 个关键层次

                        开发单片机需要学习什么?软件编程的 4 个关键层次 单片机的 “智能” 全靠软件实现,编程技能需从基础语法逐步进阶到复杂逻辑,每个层次对应不同的开发需求
    的头像 发表于 08-25 11:32 1073次阅读

    51单片机stm32单片机,先学习个?

    纠结 51 单片机STM32 该先学哪个,就像刚学开车的人在自动挡和手动挡之间打转。有人上来就爱开自动挡,踩着油门就能跑,不用琢磨换挡踩离合的门道;有人偏要从手动挡练起,哪怕起步时熄十几次火
    的头像 发表于 08-20 13:46 1518次阅读
    51<b class='flag-5'>单片机</b>与<b class='flag-5'>stm32</b><b class='flag-5'>单片机</b>,先<b class='flag-5'>学习</b>哪<b class='flag-5'>一</b>个?

    怎么测单片机系统频率

    单片机系统频率是指单片机工作时的时钟频率,它直接影响单片机的运行速度和处理能力,准确测量系统频率对单片机应用开发、程序调试和性能优化具有重要意义。测量
    的头像 发表于 07-25 11:39 1074次阅读

    单片机怎么驱动电机?

    在各类自动化设备和智能装置中,电机是重要的执行部件,而单片机作为控制核心,需要通过特定的方式驱动电机运转。单片机驱动电机并非直接连接即可,而是要根据电机类型和功率,搭配合适的驱动电路,才能实现稳定
    的头像 发表于 07-25 09:31 1295次阅读

    单片机怎么烧程序

    单片机烧程序是将编写好的程序代码写入单片机内部存储单元,让单片机按照预设逻辑工作的过程,是单片机应用开发中不可或缺的环节。无论是简单的灯光控制程序,还是复杂的工业控制算法,都需要通过烧
    的头像 发表于 07-23 11:47 1983次阅读

    使用USB转TTL串口板和ST-LINK调试下载器给STM32单片机下载程序

    本文详细介绍如何使用ST-LINK/V2和USB转TTL串口板为STM32单片机下载程序,包括STM32启动模式、JTAG与SWD接口对比、驱动安装及官方软件STM32ST-LINKU
    的头像 发表于 06-20 17:26 3224次阅读
    使用USB转TTL串口板和ST-LINK调试下载器给<b class='flag-5'>STM32</b><b class='flag-5'>单片机</b>下载程序