学习单片机和STM32的一道坎

发布者:Serene123最新更新时间:2024-03-12 来源: elecfans关键字:单片机  STM32  串口通信 手机看文章 扫描二维码
随时随地手机看文章

刚开始学单片机的你,是不是会因用程序把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  串口通信 引用地址:学习单片机和STM32的一道坎

上一篇:一文详解STM32的嘀嗒时钟(SysTick)
下一篇:STM32串口通信过程详解

推荐阅读最新更新时间:2024-11-06 18:03

PIC单片机CCS之C语言(#TYPE的用法)
#TYPE 语法: #type standard-type=size #type default=area standard-type是short,int,long或用户定义尺寸中的之一; size是1,8,16或32; area是#TYPE使用typemod命令定义的存储区. 目的:编译器默认将short看作1位, 将int看作8位, 将long看作16位.传统的C习惯为目标处理器而将INT定义成更高效率的尺寸.在PIC中,INT是8位.为了有助于代码兼容,#type命令允许改变这些关键字. #TYPE能重新定义这些关键字. 注意:逗号是可选项.当然#TYPE可能使一些尺寸得不到4种关键字的描绘(如上面的1位整型),下
[单片机]
基于MSP430单片机的虚拟I2C总线软件包VIIC_M1.0
一、VIIC_M1.0软件包的组成 根据归一化设计的要求,主方式下虚拟I2CC总线由下列10个子程序组成: 1、时序模拟子程序4个 I2C_sta,I2C _stop,I2C _mack ,I2C _mnack 2、操作模拟子程序3个 I2C_ackn,I2C _wr_byte,I2C _rd_byte 3、数据读写子程序3个 I2C_wr_nbyte,I2C _rd_nbyte,I2C_wr_addr 二、应用对象 1、MSP430单片机 MSP430单片机为低功耗的16位单片机,有MSP430X11、MSP430X112、MSP430X1101、MSP430X13X、MSP430X14X、MSP430X31X/32X/33
[单片机]
基于MSP430<font color='red'>单片机</font>的虚拟I2C总线软件包VIIC_M1.0
12位A/D转换器ADS7804与51单片机的接口及程序设计
摘要: ADS7804是美国BURR-BROWN公司推出的一种新型12位A/D转换器。文中介绍了它的特性与功能,给出了一种简洁而新颖的与51单片机的接口方法,同时给出了用C语言编写的数据采集的应用程序。 1 基本特点 在计算机控制系统及各类用单片机(或微处理器)构成的智能仪器仪表中,外部的各种模拟信号必须通过A/D转换器变换为数字信号后才能送入计算机。与8位和16位的A/D转换器相比,12位A/D转换器以其较高的性能价格比而在仪器仪表中得到广泛的应用。 ADS7804芯片采用28脚0.3英寸PDIP(塑料双列直插式)封装,两列管脚间距为0.3英寸,比一般DIP28封装窄一倍,所以俗称瘦型DIP;ADS7804采用单5V
[模拟电子]
基于单片机的三相电源相序控制设计
一、引言 在工业快速发展的今天,三相电源作为工控系统的最直接能源来源其突出作用是显而易见的,因此,对其进行合理的逻辑指示控制显得尤为重要。在传统工业控制中,我们强调的是确保外部电源相序接线的准确性,否则将会出现生产事故,这无疑对我们的操作增添了较高要求。而本设计通过单片机编程用直观的逻辑状态较清楚地显示了对三相电源的指示,电源相序控制选择,实际被测电源相序指示,电源断相等功能。它适用于在额定电源电压为380V的三相四线系统中。在控制过程中,它对于电机反向运转造成的机械故障和人生伤害以及电源缺相运行等危险操作具有快速检测和保护功能。另外,该控制器可广泛用于配电柜、动力箱、开关箱、和电器控制箱。由于其还具有体积小的特点,因此,特别
[单片机]
基于<font color='red'>单片机</font>的三相电源相序控制设计
通过学习USART1深入STM32F107VCT6的串口通信
STM32有数个串口,每个串口都有一个自己独立的波特率寄存器USART_BRR,通过设置该寄存器就可以达到配置不同波特率的目的,由于STM32采用分数波特率,所以STM32的串口波特率设置范围很宽,而且误差很小。 在STM32的参考手册中,串口被描述成通用同步异步收发器(USART),它提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。还可以使
[单片机]
PIC单片机C语言程序实例
编者按:为了帮助具有P IC 单片机 汇编语言知识的技术人员或工程师,快速掌握利用C语言编写PIC单片机程序的方法,本刊特推出《PIC单片机C语言程序设计》系列连载文章。丈中给出的C语言程序实例,均是可执行的,读者可以放心引用。   一、汇编语言与C语言   早期的单片机程序多采用汇编语言编写。用汇编语言编程,直接、简捷,可有效地访问和控制各种硬件设备,如 存储器 、I/O口等,目标代码简短、占用内存少、执行速度快、语句效率高。然而,由于汇编语言是面向机器的语言,不同厂家或同厂家不同系列的单片机。其汇编语言指令系统往往互不相同,即通常所说的“不兼容”。这就出现了精通51单片机汇编语言的人不能直接编写PIC或其他单片机的
[单片机]
PIC<font color='red'>单片机</font>C语言程序实例
RaZa微电子与AMD合作,新型MCU触及家电产品
日前,美国RaZa微电子公司(简称RMI)和AMD宣布缔结战略合作关系。AMD将向RMI出资,而RMI将收购AMD微处理器“Alchemy”的产品线。不过,出资额等具体内容未予公布。 RMI因开发成功了面向通信设备等最多集成8个CPU内核的微处理器“XLR”而被业界所熟悉。该公司将把此次的Alchemy系列作为面向小型视频播放器及家电的“XLA”进行投产,争取以此涉足家电嵌入处理器市场。 Alchemy是基于MIPS架构的产品群,XLR等原有产品群也采用这一架构,这样一来,将形成从高端到低端的所有微处理器均采用同一架构的产品群。另外,RMI还将参与AMD推进的开发项目“Torrenza”。该项目旨在通过AMD提供高速串行接口Hy
[焦点新闻]
STM32的备份电池寿命
请教诸位使用STM32的兄弟: 如果用50mah的备份电池给STM32的RTC供电,能坚持多长时间?规格书上IDD_VBAT是。而VBAT的范围是1.8~3.6V。 ST是否有相应针对特定电池的数据。 -------------------------------------------------------------------- 半导体公司不会给出一个准确的数据,一般自己计算一下就好了。 比如50mAh的电池按照1.4uA放电,可以使用的时间为:50mAh / 1.4uA = 35714小时 CR2025电池 电压3.0V,容量150,尺寸20.0X2.5mm, 重量2.4g 150mAh / 1.4uA =
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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