文章目录

  • 设计需求
  • 一、基础知识
    • 串行/并行
    • 全双工/半双工/单工
    • 同步和异步
    • 通信速率
    • 电平标准
  • 硬件设计
  • IDE设计
    • MX设置
    • 代码设计
    • 实验现象

设计需求

使用串口打印调式信息


一、基础知识

在嵌入式中,通信将主控芯片与传感器、存储芯片、外围控制芯片等连接起来,使得功能不再受限于主控本身。主控既从其他设备获取信息,也将自己的信息传递给其他设备。如果通信没处理好,将直接影响整个系统的功能,由此可见通信技术的重要性。
常见的通信协议有**UART,I^2C,1-Wire**等。这里先简单介绍一些通信的基本概念

串行/并行

按照数据传输的方式,通信可以分为串行通信和并行通信。串行通信简单的说就是数据一次传输。并行就是几个数据一起传输。如下图

由此可见,串行传输占用的通信线更少,成本低,通信速度相对较慢;并行传输占用通信线多,成本高,通信速度相对较快。但是随着对速度要求越来越高,并行传输开始出现信号之间的干扰,串行通信受干扰影响较小,之后又发展了差分传输等技术,极大提高了串行传输速率,使得串行通信速度可能比并行速度更快。
并行因为各通信线相隔较近,传输速率过快,随之相互干扰也就越强。

全双工/半双工/单工

按照数据的传输方向,通信又可以分为全双工、半双工、单工。全双工指双方都可以同时收发信息;半双工双方都可以收发信息,但是同一时刻只能一方发送信息;单工指的就是一方只能发信息,另一方只能接收信息。

例子:全双工:电话 半双工:对讲机 单工:电报机

同步和异步

按数据同步的方式,通信可以分为同步通信,异步通信。数据在双方之间传输时,需要指定规则保证数据传输的准确。

同步通信:在数据传输双方,加一个时钟信号,发送方和接收方在这个时钟的节拍下传输数据,比如常见的SPI,I^2C。

异步通信:对数据进行封装,在数据开头加上起始信号,在数据结尾加上终止信号,双方就按照这个规则传输数据,比如UART,1-wire。

因此完全可以看是否有时钟信号,来判断是同步传输还是异步传输。

通信速率

对于同步通信,通信速率由时钟信号决定,时钟越快,传输速度就越快。

对于异步通信,需要收发双方统一通信速率,这也就是我们进行串口调试时,波特率不对显示乱码的原因。

时钟对于通信的重要性例子:假设发送端时钟频率为1MHz,对应时钟周期则为1us,接收端时钟频率为10MHz,对应时钟频率就是0.1us。现在发送端发送一个数据0x1,就会产生持续时间为1us高电平,接收端接收到这个1us的高电平,会当作10个0.1us的高电平,认为收到了10个0x1.这时数据就乱套了,因此需要一个统一的时钟标准。

电平标准

说到串口,经常提到TTL,RS422、RS232,RS485,简单的说,就是为了适应不同的环境条件,使用了不同的电平标准。假如微处理器和板载的蓝牙透传模块通信时,一般使用的就是TTL电平,引脚直接连接即可。假如微处理器在工业现场,需要连接一个几十米外的装置,则应该考虑将TTL电平转换为RS232、RS485,RS422。

常见通信接口标准

硬件设计

UART4_RX(PA11)和UART4_TX(PA12)经过缓冲器(U5)接到了串口转USB芯片(U6),得到USB信号通过Type-C(J5)连接到电脑。

正常开发时,UART4默认用于A7的Linux信息输出,因此用户只能将UART8分配给M4,用于M4外接模块或则外接TTL转USB设备。但是这次实验就先用UART4.

IDE设计

MX设置


为了串口能够打印float类型

代码设计

主函数

实验现象

STM32MP157(实验四)——串口通信(串口打印)相关推荐

  1. 51单片机-串口通信(串口向电脑发送信息电脑通过串口控制LED)

    文章目录 前言 一.串行通信口的功能以及串行通信口的结构及原理 1.1 串行通信口的功能 1.2 51单片机串口的结构 二.串行通信口的控制寄存器 2.1 串行控制寄存器SCON 2.2 电源控制寄存 ...

  2. MFC串口通信串口指示灯的实现

    前一段做了个串口通信小软件,当打开串口时串口指示灯亮,关闭串口时串口指示灯灭,实现方法如下: 1.在资源视图中,添加两个图标,分别为串口指示灯灭IDI_ICON1,串口指示灯亮IDI_ICON2. 2 ...

  3. Android串口通信:串口读写

    FROM:http://blog.csdn.net/burly/article/details/50512379 公司有个项目要用到串口通信,同事有写好一个DEMO,用的时候发现会有问题,从jni读串 ...

  4. 项目总结一:串口通信 || 串口接收数据和写入的数据不一致

    在做项目串口通信时遇到一个奇怪的bug,我写入的一个两个字节short类型数据3,接受到的数据很奇怪有时是一个很大的数,有时又是300多,为了找到原因也是废了一些时间,这里给分享一下,希望对做串口通信 ...

  5. 单片机学习专栏——实验四4.1串口实验

    步骤 系列文章 前言 1.main.c 2.sys_init.c 3.sys_init.h 总结 系列文章 提示:单片机与接口技术专栏,观看更多内容! 点我直达–>单片机与接口技术专栏 前言 编 ...

  6. 串口通信—串口发送和接收代码讲解

    USART 初始化结构体详解 标准库函数对每个外设都建立了一个初始化结构体,比如USART_InitTypeDef,结构体成员用于设置外设工作参数,并由外设初始化配置函数,比如USART_Init() ...

  7. 串口通信——串口uart

    在两个mcu中发送数据,可选择串行通讯,或者并行通讯. 假设要通信传输一个十进制数198,在通信过程中转换为二进制数11000110. 串行通讯需要在MCU间连接一根数据线,按照二进制位顺序发送即可. ...

  8. Linux操作系统实验系列之实验四管道通信

    一.实验目的 1.了解什么是管道 2.熟悉UNIX/LINUX支持的管道通信方式 二.实验内容: 编写程序实现进程的管道通信.用系统调用pipe( )建立一管道,二个子进程P1和P2分别向管道各写一句 ...

  9. STM32串口通信串口助手收不到数据

    问题: 已经确定代码是没有问题的,但是串口调试助手就是收不到消息 解决办法: 别急,我来帮你 右击工程,选择Options for Target 'test' 然后...... 这里打勾, 然后,OK ...

最新文章

  1. oppo怎么广告接入_OPPO游戏的承转启合,携手开发者迎接万物互融时代
  2. javascript基础(第二天)
  3. jquery之ajax请求工具类
  4. 创业者说:我从创业者大会看到了什么
  5. Spark SQL 之SQLContext(二)
  6. TCC分布式实现原理及分布式应用如何保证高可用
  7. 程序员的发展方向是什么?
  8. 怎么样快速修改HOSTS文件?让火绒等小工具来帮忙
  9. MAC表和ARP表的老化时间:
  10. 移动硬盘看不到盘符,磁盘管理器显示未初始化解决办法
  11. Cartopy绘图入门指南
  12. 2022年荧光染料市场前景分析及研究报告
  13. centos添加桌面快捷方式
  14. 如何在发布宝贝页面时嵌入视频
  15. 高德地图实现仿qq,微信发送位置功能实现逻辑
  16. 千里走单骑:06-北京到上海骑记--Day5.风雨回家路
  17. 小学计算机社团活动简报,多彩社团活动幸福校园生活——南街小学社团活动报道...
  18. 2021年新版电影小程序商业版+前端无后门+搭建教程亲测可用
  19. AIQ - deeplearning.ai 全套吴恩达老师的深度学习课程笔记及资源在线阅读
  20. 用js编写一个函数:rev(str),功能是实现字符串倒置:rev(”床前明月光“),返回一个字符串:“光月明前床”...

热门文章

  1. Quant面试好题汇总
  2. Unity Shader - Planar Shadow - 平面阴影
  3. okhttp https ip直连设置Host
  4. mysql解析json_mysql解析简单json字符串
  5. 一种即时通信数据传输方法、客户端、服务器及系统
  6. 2018版ISTQB FL基础级大纲全解析
  7. PIL.image保存图片
  8. 可用资源不足excel无法完成任务_你若会用Excel里的SUM函数,又何须加班到半夜!【Excel教程】...
  9. linux安装globalsign证书,globalsign代码签名证书
  10. JAVA项目 ----宠物小精灵12.1