当前位置: 首页 > 新闻中心 > 乐球吧nba在线直播
返回
列表

STM32串口通信的基础原理介绍

发表时间: 2024-04-04 作者: 乐球吧nba在线直播

  一般情况下,设备之间的通信方式能分成并行通信串行通信两种。并行与串行通信的区别如下表所示。

  半双工:允许数据在两个方向上传输。但是,在某一时刻,只允许数据在一个方向上传输,它其实就是一种切换方向的单工通信;它不需要独立的接收端和发送端,两者可以合并一起使用一个端口。

  全双工:允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,需要独立的接收端和发送端。

  在同步通讯中,收发设备上方会使用一根信号线传输信号,在时钟信号的驱动下双方进行协调,同步数据。例如,通讯中通常双方会统一规定在时钟信号的上升沿或者下降沿对数据线进行采样。

  在异步通讯中不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些用于同步的信号位,或者将主题数据来进行打包,以数据帧的格式传输数据。通讯中还需要双方规约好数据的传输速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等。

  在同步通讯中,数据信号所传输的内容绝大部分是有效数据,而异步通讯中会则会包含数据帧的各种标识符,所以同步通讯效率高,但是同步通讯双方的时钟允许误差小,稍稍时钟出错就可能会引起数据错乱,异步通讯双方的时钟允许误差较大。

  STM32的串口通信接口有两种,分别是:UART(通用异步收发器)、USART(通用同步异步收发器)。而对于大容量STM32F10x系列芯片,分别有3个USART和2个UART。

  对于两个芯片之间的连接,两个芯片GND共地,同时TXD和RXD交叉连接。这里的交叉连接的意思就是,芯片1的RxD连接芯片2的TXD,芯片2的RXD连接芯片1的TXD。这样,两个芯片之间就能够直接进行TTL电平通信了。

  若是芯片与PC机(或上位机)相连,除了共地之外,就不能这样直接交叉连接了。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。故,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。

  所以单片机串口与PC串口通信就应该遵循下面的连接方式:在单片机串口与上位机给出的rs232口之间,通过电平转换电路(如下面图中的Max232芯片) 实现TTL电平与RS232电平之间的转换。

  RS232串口简介台式机电脑后面的9针接口就是com口(串口) 在工业控制数据采集上应用广泛上图中,最右边的是串口接口统称为RS232接口,是常见的DB9封装。

  3脚:电脑的输出TXD 通过2 ,3 脚就能轻松实现全双工(可同时收发)的串行异步 通信

  单片机的P3口是有两个复用接口RXD 和TXD。这是单片机进行串行通信的收发口,连接应该错位的对应到电脑的TDX RDX上。注意:单片机和RS232的电平标准是不一样的。

  在单片机与上位机给出的rs232口之间 通过电平转换电路(最上面图中的Max232芯片) 实现TTL电平与RS232电平之间的转换,PC串口与单片机串口连接方式图:

  注意这两个DB9:DB91是在电脑上的 DB92是在单片机实验板上焊接着的。

  DB92的RXD连着DB91的TXD这样交叉着连接,如果电脑没有RS232口 只有USB口,可以用串口转接线转出串口,如下图所示。

  注意,这个驱动程序驱动的是PL2303芯片(在上图的大头里面) 使得RS232信息转换成USB信息。

  分数波特率发生器系统,提供精确的波特率。发送和接受共用的可编程波特率,最高可达4.5Mbits/s;

  串口通讯的数据包由发送设备通过自身的TXD接口传输到接收设施的RXD接口,通讯双方的数据包格式要规约一致才能正常收发数据。

  STM32中串口异步通信需要定义的参数:起始位、数据位(8位或者9位)、奇偶校验位(第9位)、停止位(1,15,2位)、波特率设置。

  UART串口通信的数据包以帧为单位,常用的帧结构为:1位起始位+8位数据位+1位奇偶校验位(可选)+1位停止位。如下图所示:

  奇偶校验位分为奇校验和偶校验两种,是一种简单的数据误码校验方法。奇校验是指每帧数据中,包括数据位和奇偶校验位的全部9个位中1的个数必须为奇数;偶校验是指每帧数据中,包括数据位和奇偶校验位的全部9个位中1的个数必须为偶数。

  校验方法除了奇校验(odd)、偶校验(even)之外,还可以有:0 校验(space)、1 校验(mark)以及无校验(noparity)。0/1校验:不管有效数据中的内容是什么,校验位总为0或者1。

  这个框图分成上、中、下三个部分。本文大概地讲述一下每个部分的内容,具体的可以看《STM32中文参考手册》中的描述。

  框图的上部分,数据从RX进入到接收移位寄存器,后进入到接收数据寄存器,最终供CPU或者DMA来进行读取;数据从CPU或者DMA传递过来,进入发送数据寄存器,后进入发送移位寄存器,最终通过TX发送出去。

  然而,UART的发送和接收都需要波特率来来控制的,波特率是怎样控制的呢?

  这就到了框图的下部分,在接收移位寄存器、发送移位寄存器都还有一个进入的箭头,分别连接到接收器控制、发送器控制。而这两者连接的又是接收器时钟、发送器时钟。也就是说,异步通信尽管没有时钟同步信号,但是在串口内部,是提供了时钟信号来来控制的。而接收器时钟和发送器时钟有是由什么控制的呢?

  能够正常的看到,接收器时钟和发送器时钟又被连接到同一个控制单元,也就是说它们共用一个波特率发生器。同时也可以看到接收器时钟(发生器时钟)的计算方式、USRRTDIV的计算方法。

  1.前言 嵌入式以太网开发是一个很有挑战性的工作。通过几个月的学习,我自己觉得大致有两条途径。第一条途径,先通过高级语言熟悉socket编程,例如C#或C++,对bind,listen,connect,accept等函数熟悉之后,应用 lwIP。第二种途径,通过一系列分析嵌入式以太网代码,结合TCPIP协议栈规范逐步实践代码。第一种途径效率高,开发周期短,编写出来的代码稳定性很高,第二种途径花的时间长,开发出来的代码功能不完善,但是由于紧紧结合TCPIP规范,能了解的内容较多,适合学习。本文通过一系列分析和修改AVRNET源码,逐步实现TCPIP协议栈的各个子部分,包括ETHERNET部分,ARP部分,IP部分,ICMP部分,UDP部分

  关于STM32的片上资源,LCD ILI9341液晶屏的基本配置,SD卡的驱动及文件系统,OV7725摄像头功能的介绍已经在上一个章节中进行了详细的说明。硬件平台的搭建都是建立在STM32开发板与其他器件模块连接上的,本章节则主要是采用自顶向下,层层细化的程序设计思想,分模块讲解总系统的软件实现流程。 3.1顶层程序设计 STM32照相机基本流程可以描述为:系统初始化,拍照处理。首先是系统初始化,包括系统时钟配置,对按键的GPIO和中断使能,LED的GPIO初始化;再初始化LCD的GPIO,FSMC总线功能和内部寄存器;还有初始化SD卡FATFS文件系统并使能SDIO的中断;最后,在实现模拟SCCB总线还需要配

  的照相机系统软件设计 /

  本次工程是要同时实现SD卡读卡器和NAND Flash模拟U盘的功能。结合之前的两个工程,稍稍修改下就可以了。 既然要实现两个盘,当然在usb_prop.c中的Max_Lun变量赋值为1,在USB_User组中同时添加fsmc_nand.c和sdio_sdcard.c这两个文件,在外设库中挺尸添加stm32f10x_sdio.c和stm32f10x_fsmc.c两个文件。 添加完之后,可能会出现些许的错误,解决完后,我们要修改下mass_mal.c文件了,这一个文件本次要同时实现SD卡和NAND Flash的相关驱动代码的挂接,代码如下: uint32_t Mass_Memory_Size ; uint32_t Mass_B

  1、硬件设计 按键机械触点断开、闭合时,由于按键触点的弹性作用,按键开关不会马上稳定接通或一下就断开,使用按键时就会产生下图中的带纹波信号,需要软件消抖处理滤波 由于用软件消抖处理滤波不方便输入检测,所以提出了如下带有硬件消抖的电路。 从按键的原理图可知,当按键没有被按下时,GPIO引脚通过一个下拉电阻R64使引脚处于低电平状态,当按键被按下时,按键所在的电路导通,VCC通过一个限流电阻R33连接到GPIO引脚,使GPIO引脚的输入状态为高电平,只要我们检测引脚的输入电平为高电平,即可判断按键是否被按下。 同LED工程,为了使工程的移植性更高,是工程更有条理,我们把按键相关的代码独立分开存储,在工程模板

  实现GPIO输入按键检测 /

  因为上一个题目的界面是自己一个一个点打到屏幕上去的,计算过程相当恶心,所以这两天赶紧弄了一下 CGUI,希望对后面的人机交互界面的设计起到一定的帮助。 说实话,我对于人机交互界面的设计真心没什么的灵感,上次赵颖老师就委婉的表达了这个意思,我也深刻的意识到了这样的一个问题,就是设计的界面相当普通,没有给人一种眼前一亮的感觉。 首先感谢队友王绥学给我提供的资料,因自己电脑运行各种大型软件实在是太卡,所以这个暑假把女朋友电脑留下,不过资料都在另外一台电脑中,需要的资料就给队友要,十分的感谢啊! 按照教程一步一步的做下来,前面几步关于GUI的参数设置没什么问题,无非是用到的功能将其参数置1,用不到的功能将其参数置0

  1、系统文件名和源文件名以 stm32f10x_ 的形式表示 2、在单一文件中使用的常量在该文件中定义。在多个文件中使用的常量定义在头文件中。所有常量都以大写字母表示。 3、寄存器当做常量看待,同样以大写字母表示,多数情况下,在STM3210X参考手册中使用相同的缩写。 4、外围模块的功能函数的名字,需要有相应的外围模块缩写加下划线这样的前缀,每个单词的首字符要大写。例如SPI_SendData,在一个函数名中,只允许有一条下划线,用来区分外围模块缩写和剩下的函数名。 5、使用X_InitTypeDef中指定的参数初始化X外围模块的函数,被命名为X_Init. 6、复位X外围模块的寄存器为默认值的函数,命名为X_DeInit

  单片机STM32的引脚有多种方式能选择。 如果你是用直接写寄存器来配置的话,那么,看上手册,给“配置寄存器”对应的位写0或者1就能够达到目的。如下图: 如果是用库函数来配置的话,就必须了解到下面这个结构体中的变量代表的意义。 库函数,选择好GPIO_Mode之后,就要使用GPIO_Init()函数来配置,你能打开这个配置函数,实际上也是在对“配置寄存器”进行写操作。 先解释一下这个结构体中的各个变量的意思: GPIO_Mode_AIN:模拟输入模式 GPIO_Mode_IN_FLOATING:浮空输入模式 GPIO_Mode_IPD:下拉输入模式 GPIO_Mode_IPU:上拉输入模式 GPIO_Mode_Out_O

  的引脚模式设置 /

  一、环境介绍 MCU:STM32F103ZET6 编程软件环境:keil5 LCD显示屏:正点原子的TFT 3.5寸显示屏 二、运行效果 三、功能介绍 因为代码原来是在2.8寸屏上设计的,但是2.8寸屏摔碎了,现在手上只有块3.5寸的LCD屏。就把代码移植到3.5寸屏上显示了,目前运行的效果可以看上面的效果图。 拼图游戏在小时候还是经常玩,玩法也最简单,这里就使用STM32设计一个拼图小游戏分享出来一起学习。 目前游戏是通过开发板上4按键来控制图片的移动,完成最终的拼图效果,如果想要在上面扩充其他游戏功能都是比较容易。 当然,设计编写这个款小游戏不单单是为了玩游戏这么简单,主要是为了通过设计游戏

  设计的拼图小游戏详解 /

  嵌入式系统软硬件协同设计教程:基于Xilinx Zynq-7000 (符意德)

  F411的无刷直流电机FOC控制管理系统设计

  使用STM32 Nucleo撬开针对物联网的ARM mbed IDE之门

  【下载】LAT1396 STM32CubeIDE实用技巧之STM32H7双核调试的配置

  【下载】LAT1343 STM32H5 USBD Classic驱动 CDC移植

  【下载】LAT1392 LTDC RGB接口 LCD的TouchGFX工程的移植步骤

  【直播】4月11日,STM32Trust如何帮助新产品设计提升信息安全保护能力

  【线日,基于Buildroot制作STM32MP13启动镜像-深圳/厦门/西安/郑州/苏州

  【新品】STM32U0新一代超低功耗入门级MCU,助力终端产品省电,安全,BOM成本低

  【新品】 STM32H7R/S基于Cortex-M7,运行频率高达600 MHz,板载闪存型MCU 拥有高速的外部存储

  【新品】STM32WBA54/55 支持BLE5.4、IEEE 802.15.4通信协议、Zigbee®、Thread和Matter协议

  【新品】STM32MP2 最高配备双核Arm® Cortex®-A35和Cortex®-M33的STM32MP2系列微处理器

  【新品】STM32H5-Arm® Cortex®-M33 内核,主频高达250MHz,提升性能与信息安全性

  12 1 概述实时时钟RealTimeClock(简称RTC),实时时钟芯片是日常生活中应用最为广泛的消费类电子科技类产品之一。它为人们提供精确的实时时间, ...

  16 3 5 自身地址寄存器1:I2Cx_OAR76543210ADDMODE-ADD[9:8]ADD[7:1]ADD0Bit 15:寻址模式(从模式)0:7位从地址(不响 ...

  一、前言在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了尽最大可能避免这种情况的出现,后期的MCU都集成了看门狗 ...

  01前言在学习51单片机的时候,经常会使用keil+protues的方式来做一些实验,这样的模拟仿真为我们节省了很多硬件和时间成本,可以更直观的看 ...

  第一步:具体配置如下图:第二步:能够准确的通过自身需要在NVIC 中断控制器中配置中断响应优先级。这里的配置办法能够参考前面几章!第三步:代 ...

  站点相关:综合资讯51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程