欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    STM32串口通信基础知识科普.docx

    • 资源ID:83369188       资源大小:2.02MB        全文页数:14页
    • 资源格式: DOCX        下载积分:24金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要24金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    STM32串口通信基础知识科普.docx

    STM32 串口通信基础知识科普设备之间通信的方式一般情况下,设备之间的通信方式可以分成并行通信和串行通信两种。并行与串行通信的区别如下表所示。串行通信的分类1、按照数据传送方向,分为:单工:数据传输只支持数据在一个方向上传输;半双工:允许数据在两个方向上传输。但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;它不需要独立的接收端和发送端,两者可以合并一起使用一个端口。全双工:允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,需要独立的接收端和发送端。2、按照通信方式,分为:同步通信:带时钟同步信号传输。比如:SPI ,IIC 通信接口。异步通信:不带时钟同步信号。比如:UART( 通用异步收发器 ),单总线。在同步通讯中,收发设备上方会使用一根信号线传输信号,在时钟信号的驱动下双方进行协调,同步数据。例如,通讯中通常双方会统一规定在时钟信号的上升沿或者下降沿对数据线进行采样。在异步通讯中不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些用于同步的信号位,或者将主题数据进行打包,以数据帧的格式传输数据。通讯中还需要双方规约好数据的传输速率(也就是波特率)等,以便更好地同步。常用的波特率有 4800bps 、9600bps 、115200bps 等。在同步通讯中,数据信号所传输的内容绝大部分是有效数据,而异步通讯中会则会包含数据帧的各种标识符,所以同步通讯效率高,但是同步通讯双方的时钟允许误差小,稍稍时钟出错就可能导致数据错乱,异步通讯双方的时钟允许误差较大。常见的串行通信接口STM32 串口通信基础STM32 的串口通信接口有两种,分别是: UART (通用异步收发器)、USART (通用同步异步收发器)。而对于大容量 STM32F10x 系列芯片,分别有 3 个 USART 和 2 个 UART 。UART 引脚连接方法RXD :数据输入引脚,数据接受; TXD :数据发送引脚,数据发送。对于两个芯片之间的连接,两个芯片 GND 共地,同时 TXD 和 RXD 交叉连接。这里的交叉连接的意思就是,芯片 1 的 RxD 连接芯片 2 的 TXD , 芯片 2 的 RXD 连接芯片 1 的 TXD 。这样,两个芯片之间就可以进行 TTL 电平通信了。STM32 与 51 单片机串口通信相关实例,请移步此处 :STM32 与51 单片机串口通信实例。若是芯片与 PC 机(或上位机)相连,除了共地之外,就不能这样直接交叉连接了。尽管 PC 机和芯片都有 TXD 和 RXD 引脚,但是通常 PC 机(或上位机)通常使用的都是 RS232 接口(通常为 DB9 封装),因此不能直接交叉连接。 RS232 接口是 9 针(或引脚),通常是 TxD 和 RxD 经过电平转换得到的。故,要想使得芯片与 PC 机的 RS232 接口直接通信,需要也将芯片的输入输出端口也电平转换成 RS232 类型,再交叉连接。经过电平转换后,芯片串口和RS232 的电平标准是不一样的: 单片机的电平标准( TTL 电平): +5V 表示 1,0V 表示 0; RS232 的电平标准: +15/+13 V表示 0,-15/-13 表示 1。RS-232 通讯协议标准串口的设备间通讯结构图如下:所以单片机串口与 PC 串口通信就应该遵循下面的连接方式:在单片机串口与上位机给出的RS232 口之间,通过电平转换电路 (如下面图中的Max232 芯片) 实现 TTL 电平与 RS232 电平之间的转换。 STM32 与 PC 之间通信实例,请移步此处 :STM32 实例-用按键控制串口发送数据,文末附代码。RS232 串口简介台式机电脑后面的 9 针接口就是 com 口(串口) 在工业控制 数据采集上应用广泛上图中,最右边的是串口接口统称为 RS232 接口,是常见的 DB9 封装。通信过程中只有两个脚参与通信。2 脚:电脑的输入 RXD3 脚:电脑的输出 TXD 通过 2 ,3 脚就可以实现全双工 (可同时收发)的串行异步 通信5 脚:接地单片机的 P3 口是有两个复用接口 RXD 和 TXD 。这是单片机进行串行通信的收发口,连接应该错位的对应到电脑的 TDX RDX 上。注意:单片机和 RS232 的电平标准是不一样的。单片机的电平标准 TTL 电平 :+5V 表示 1 0V 表示 0。RS232 的电平标准 +15/+13 V表示 1 -15/-13表示 0。所以 单片机与电脑串口通信就应该遵循下面的连接方式:在单片机与上位机给出的RS232 口之间通过电平转换电路 (最上面图中的 Max232 芯片) 实现 TTL 电平与 RS232 电平之间的转换, PC 串口与单片机串口连接方式图:注意这两个 DB9 :DB91 是在电脑上的 DB92 是在单片机实验板上焊接着的。这里的交叉连接的意思是DB91 的 RXD 连 着 DB92 的 TXD 。DB92 的 RXD 连着 DB91 的 TXD 这样交叉着连接,如果电脑没有RS232 口 只有 USB 口,可以用串口转接线转出串口,如下图所示。这个时候在电脑上位机上需要安装串口驱动程序。注意,这个驱动程序驱动的是PL2303 芯片(在上图的大头里面 ) 使得RS232 信息转换成 USB 信息。下图为上图的内部结构:用串口通信比 USB 简单,因为串口通信没有协议,使用方便简单。STM32 的 UART 特 点全双工异步通信;分数波特率发生器系统,提供精确的波特率。发送和接受共用的可编程波特率,最高可达 4.5Mbits/s ;可编程的数据字长度( 8 位或者 9 位);可配置的停止位(支持1 或者 2 位停止位); 可配置的使用 DMA 多缓冲器通信;单独的发送器和接收器使能位; 检测标志: 接受缓冲器发送缓冲器空传输结束标志;多个带标志的中断源,触发中断;其他:校验控制,四个错误检测标志。串口通信过程STM32 中 UART 参 数串口通讯的数据包由发送设备通过自身的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。UART (USART )框图这个框图分成上、中、下三个部分。本文大概地讲述一下各个部分的内容,具体的可以看 STM32 中文参考手册中的描述。框图的上部分,数据从RX 进入到接收移位寄存器,后进入到接收数据寄存器,最终供 CPU 或者 DMA 来进行读取;数据从CPU 或者 DMA 传递过来,进入发送数据寄存器,后进入发送移位寄存器,最终通过TX 发送出去。然而, UART 的发送和接收都需要波特率来进行控制的,波特率是怎样控制的呢?这就到了框图的下部分,在接收移位寄存器、发送移位寄存器都还有一个进入的箭头,分别连接到接收器控制、发送器控制。而这两者连接的又是接收器时钟、发送器时钟。也就是说,异步通信尽管没有时钟同步信号,但是在串口内部,是提供了时钟信号来进行控制的。而接收器时钟和发送器时钟有是由什么控制的呢?可以看到,接收器时钟和发送器时钟又被连接到同一个控制单元,也就 是说它们共用一个波特率发生器。同时也可以看到接收器时钟(发生器时钟) 的计算方法、 USRRTDIV 的计算方法。

    注意事项

    本文(STM32串口通信基础知识科普.docx)为本站会员(小***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开