花几秒停留一下,说不定能解决困扰你的一个小问题。然后这一节课的话,我们是在上一节课,你买了一个三二的一个开发版和一个下载器,然后我们拿到一个工程文件,看能不能正常的打印一个调试设置, 然后工程文件的话,我这里已经给大家准备好了,然后你这里解压后就可以得到这一个工程目录了。在这一个工程目录里边,你打开 mdk 也就是 kel 的 工程,然后双击打开这一个工程, 那么你就可以得到一份工程。拿到这一份工程我们要做什么呢?就是你上节课自己买的一个三二开发版和 zel 的 一个工程,就可以来看一下我们是否连接成功了, 像这样的话,我们是已经连接上,已经识别到我们的一个开发版了, ok, 那 么识别到以后就证明我们的连接是没问题的。那么我们接下来一步就是把我们的程序下载到开发版,然后看日期能不能正常打印, 然后我们的日期用的是 rtt 的 一个输入日期,然后我们来下载,看一下能不能正常显示出来。 ok, 然后我们这里点一下编辑,然后下载, 这里的话我们希望看到的是 hello world, 然后我们再来修改一下,看我们是不是能得到一模一样的,就是我们加一个一,然后再编辑再下载。 ok, 然后我们来看一下我们能不能得到一个 hello world 一, 有的这里很明显是 hello world 一, 那么这时候我们这一个这节课的目的就已经达到了。然后我们补充说明一下,这一个日字打印并非是他原生态的,是我们之前移植了第三方主键,能够保证我们功能的一个稳定, 但是我们的重点并不是说这一个主键是怎么移植的,而我们是要通过主键的一个打印来看我们的创口调试日记。然后下节课的话,我们再开始我们的一个创口功能的一个验证,以及能够踩到的一些坑跟大家分享一下。 如果大家觉得有用的话可以点击一下收藏,需要资料的话可以后台私信我能找到我。
粉丝3获赞50

朋友们,今天的话,我们来着重讲解一下 usart 和 uart 的 使用,好吧, uart 呢,这里边就是串行异步触发器, usart 呢是串行同步异步触发器,接下来的话,我们统一用 uart 来表示以上两种接口。 好吧, uart 呢,其实在我们日常工作中用的非常多,就是串行异步触发器,在我们用单片机去通信一些通信驱动一些通信模块的时候,比如说串口, wifi 啊, n、 d、 l、 r 或者一些其他一些传感器,其大部分都会用到串口。 我认为里边如果串口的话,你只会这个打印函数或者回显,其实远远不够的。像这种接收啊,空闲中断啊, dma 啊,对链其实都是我们必须要掌握的,我认为想熟练掌握串口通信呢,必须具备以下几点 啊。第一,硬件层,基本的硬件框架,硬件框架也就是我们说的硬件连接图,除了供电之外呢,还有两个非常重要的通信线,就是 t x 和 r x, 就是 数据链路层,也就是我们说的数据的通信格式部分 啊,通信双方呢,必须遵守的一种数据传输格式。这也是在面试的过程中必问的一个问题啊,它主要包含就是七十位加数据位,加基友向量位加停止位。 七十位呢,它是占一个比特的低电频。数据位呢是八个比特,也就是一个字节。有些场景呢,也是九个比特啊,基友向量呢,是占一个比特,主要用于保证数据传输的一个稳定性。停止位呢,是一个比特的高电频啊。对了,还有一个非常重要的概念,就是我们数据传输的速度的快慢。第三,实践环节, 这也是我们最重要的啊,就我感觉最重要的啊。然后你们为什么是这样这么说呢?就是因为你明白以上内容的话,你对这个串口有一个初步的概念,但我们最终还是需要去写代码,在板子里面进行验证,验证我们自己的想法,然后根据错误呢去优化我们的想法。 同样呢,我们要通过试播器去抓取相关的波形,像现在这里边的话,主要就是我们抓取的两个数据的传输,大家可以看一下,然后再去修改代码,最终实现以上结果。 教室的学习呢,我感觉最重要的还是要动手操作,不能只停留在理论上啊,像这个试播器啊,逻辑分析仪啊,我们在正常的这种研发啊,学习工作中是必须要熟练的去掌握和使用的。好吧,他们那么你感觉就是关于这个串口还有哪些是重点呢?我们我们可以接下来在评论区里边聊一聊,好吧。

那个。二幺五标签块数据读写操作第一步连接设备,将读写模块与 usb 转 usb 转 usb 接口连接,然后连接电脑,把卡片放置模块读卡区域内。第二步设置软件参数, 打开软件创口,选择对应创口,点击打开创口,选择对应模块功能。第三步激活卡片,点击激活卡片。第四步读数据, 自主选择页地址,点击读数据。第五步自定义写数据,页地址不变,自定义输入数据,点击写数据。 最后独自定义的数据,点击读数据,数据成功写入。


学侵入式的正确顺序是什么?一个视频给你说清楚。第一阶段,硬件与 c 语言基础,直接去小破站学习数魔电基础和 c 语言入门的视频课程, 重点掌握 c 语言的指真结构、体魂剑操作等内容,然后学习五幺单片机原理和基本外设如何倍优 wow, 每个知识点都有小 demo 跟着敲代码,最后完成一个综合性的五幺单片机项目,我个人觉得第一阶段就 ok 了,当然查阅硬件数据手册和 c 语言标准也是必不可少的工具类技能。 学完第一阶段所有内容,大家可以投递的岗位有,硬件助理或者初级单片机工程师,主要负责硬件测试,简单固件拷写、焊接调试,待率的话五千到八千元。第二阶段,进阶 mcu 与裸机开发,深入学习 arm cortex 内核,如 stm 三二, 掌握高级 c 语言编程技巧,熟悉复杂外设,如 adc、 死币、 dma r 中段等的配置与使用,建立裸机编程思维,通过官方 sdk 和数据手册进行开发。第二阶段基本就 ok 了, 完成一个复杂的裸机项目,如基于 s t m 三二的数据采集系统,阅读芯片参考手册和原厂代码是进阶的关键。掌握第二阶段所有内容,大家可以从事的岗位有,裸机固件工程师,主要负责 o s。 驱动开发、外宿控件,低功耗设计, 待遇的话八千到十二千。第三阶段, r t o s。 以系统集成,深入学习实时操作系统 r t o s。 原理,重点掌握非 r t o s 或 r t s rand。 学习多任务编程,任务调度信号量。掌握互联网协议, 如 m q t t tcp ip g u i。 基础,如 l v g l。 建立系统集成思维,通过官方文档和源码进行开发,完成一个复杂的 r t o s 项目,如基于忽略 r t o s 的 互联网环境监测终端。第三阶段就 ok 了, 阅读 o s 内核源码和网络协议栈是进阶关键。学完第三阶段所有内容,大家可以选择 r t o s。 应用工程师, 主要负责多任务应用开发,互联网系统整合协议战实现,待遇的话十二千到十八千每月。第四阶段,嵌入式 linux 与应用开发,深入学习嵌入式 linux 系统,重点掌握 linux 系统使用需要脚本编程, 学习 boot loader, 如 uboot linux kernel 基础及裁剪各文件系统构建,掌握 linux 驱动开发伺服设备、快设备、网络设备、应用层编程、 qtc 加加 gui 开发多现成网络编程, 建立 linux 系统级思维,通过官方文档和源码进行开发,完成一个复杂的侵入式 linux 项目,如基于 linux 的 智能加机控制中心,本阶段就 ok 了,阅读 linux 内核源码,驱动框架是进阶的关键。第四阶段学习结束基本就可以拿一五 k 加了。 岗位主要是嵌入式 linux 工程师,主要负责 b s p 或者驱动开发、系统移植、应用层软件开发。待遇能够给到十五千到二十五千每月。关注猴哥,猴哥 e v e 带你学嵌入式,有问题都可以后台找我!

同学们大家好,欢迎来到今天的雏鹰启航培训活动,我是主讲成功,今天我们来介绍一下常见的一些通信协议, 我们今天呢主要介绍这三个比较常见的通信协议。首先是这个 uart 协议,在开始介绍之前呢,我们先讲一下为什么需要这个通信协议。 首先呢,在我们一块电路板上,我们可能会存在很多个芯片,包括这些什么传感器啊,处理器之类的, 我们这些传感器之间呢,是有一些会有这种数据交换的需求。 其次呢,我们不同的电路板之间也会有数据交换的这种需求啊,比如说我们家里的电脑和手机,电脑和路由器之间的这种数据交换需求, 为了这些设备之间能够正常的通信,我们就需要一个协议,大家可以理解为这个协议就是侵入式领域里面的一门语言啊,他约定了 我们何时开始发送这个数据,何时结束,然后如何打包这个数据啊,还有数据出错的时候,我们如何去纠错啊?这个协议呢,就是为了保证我们通讯双方能够准确可靠的来交换这个信息。 提到通讯呢,我们还要讲一点叫全双工和半双工通讯啊,全双工呢就是说我们的 通信可以同时进行发送和接收啊,大家可以理解为一个双向双车道啊,就是发送和接收是可以啊,同一时刻进行的。 然后呢就是半双工,半双工呢,就是同一时间只能进行发或者收啊,大家可以理解为一个单车道,但是他还是可以啊,双向通讯的,然后剩下的呢就是单工的,就是他只能进行发或者只能进行收啊,就可以类似于我们的单车道。 接下来呢我们讲一下这个同步通讯和异步通讯。首先同步通讯呢,它的一个特点就是有这个时钟线啊,一般情况下大家看到有时钟线的它都是一个同步通讯 啊,同步通讯呢,是由主机发送一条这种同步时钟信号,在我们这个时钟信号的上升或者下降沿或者其他时刻啊,这个根据不同的协议都有不同的约定 好,然后通过在这个上升下降沿或者这种这个时钟的某一个时期去采用我们的这个数据来实现,对啊,我们数据的一个读取 啊,异步通讯呢,就是没有这个时钟线啊,没有这个时钟线呢,我们就存在一个问题,就是我们的收发双方应该在哪一个位置去采用我们的一个信号啊?所以呢我们就需要一个起始位和一个停止位, 然后呢按照我们之前约定好的这个波动率啊,其实就有一点像啊,这个猜测 啊,就是看到我们上方这个猜测,就是根据我们提前约定好的这个啊通讯速率来去猜测我们的啊,这一位是高电频还是低电频?我们看一下这张图, 左边这个图就是一个同步通讯的图片啊,我们上面这个就是时钟啊,这个图片呢就是在时钟上升沿采用的一个状态啊,比如说在这个地方啊,上升沿其实就是这个时钟从低变到高的啊,这个时间 好,我们在这个时间去采用这个数据信号啊,这里是不是就是零,对吧?然后我们下一个就是一一啊,然后这样子就实现了我们一个同步通讯 啊,但是我们易步通讯呢,就没有这个时啊,没有这个时钟了,对吧?啊?所以呢,我们就要去判断说我们应该在哪个点去采纳我们的这个数据啊?比如说我们先看左边这个图,假设我们现在把这个时钟拿掉,对吧?我们只看数据,那我们是不是可以说 啊?比如说在这一段我们采用四次,那我们是不是就采用到了四个零了?我们采用三次,那就是三个零啊,这个就是异步通信的一个缺点啊,他不能很好的去确定说我应该在哪个地方去采用 啊?所以呢我们就去啊,易步通讯需要去约定一下这个起始位和这个停止位啊,同时呢还有刚刚提到的这个波动率,就是说约定我们隔多长的时间去采用这个数据 啊?这个就是同步通讯和易步通讯的一个对比,大家可以看到啊,易步通讯他的缺点的话,就是他需要一些这种停止位和 啊这种起始位的这种东西啊,它会占用我们的一个宽带啊,它就会导致异步通讯的速率会比同步通讯要慢一些。 讲完之前的一些基础知识呢,我们就来正式讲解这个通讯协议。首先是这个 uart, 它的全称叫通用异步收发传输器。 好,大家可以看到这里有个非常重要的异步,对吧?刚给大家讲的同步和异步啊 u r t 的 话呢,我们通常会称为这个串口 啊,它的特点呢是异步全双弓,然后串形,我们看一下下面这个图啊,这里有个 t 叉和 r 叉,对吧?啊,这个 t 叉其实就是啊 transmit, r 就是 receive 的 意思 啊,大家可以看到啊,它同时有这个发送和接收的这两个引脚啊,所以呢,这个 uart 它是一个全双工的,就是它的收发是可以同时进行的。 然后这里呢有一个串行啊,串行就是我们的数据,是啊依次往外发出去的啊,我们的串行还有一个协议叫并行通讯啊,并行通讯大家可以理解为 把我们的数据啊整齐的排列好,比如说有八个数据排列好之后同时的发出去啊,这种就叫并行通讯。 大家可以看到这个 uart 协议的一个优缺点,首先的话就是它的电路非常简单,只需要两根线,只需要 t 叉 r 叉两根线就可以了。第二点呢,配合这个电瓶转换,能实现长距离的通讯。 这个呢在后边有机会的话会给大家补充一下,就是这个 rs 二三和 rs 四八五, rs 四八五的话,它的通讯距离能够达到几公里。 第三点呢就是串口的应用非常广泛,我们几乎所有的 mcu 都是内置了串口触发器的。 然后就是串口协议的一个缺点,首先呢这个速度较慢,这里也给大家讲解了,因为它是异步通讯, 所以呢第一点它需要一个起始位和停止位啊,这个起始位和停止位它就会占用我们的一些数据,它不像这个同步通讯,我们的同步通讯发出去的全部都是我们有用的数据,但是我们的异步通讯 因为这个起始位和停止位的存在,它会占用掉我们的一些数据,所以它会导致易步通讯的数据比较慢啊。再一个呢,因为它是易步通讯,刚刚给大家讲的易步通讯有一点像是去 啊提前预估我们要在哪个点去采用我们的信号。大家可以想象一下,当如果我们的强行把这个 速率提高的很快的时候,比如说当这两个数据隔得非常近的时候,这个时候我们的预估就有可能估不准了。他不像我们的同步通讯有一个参考时钟,他可以保证我们每一点的产量都是准确的 这个然后第二点的话,他就是对这个时钟精度有要求,这个跟刚刚讲的是一样的,因为我们的串口是需要 去猜测我们哪哪一个点去采用的啊?当我们的始终偏差比较多的时候,我们传输数据很多的时候,就有可能会造成一个误差。 第三点呢,串口是一个点对点的通讯,我们如果设备非常多的话,这个接线就会很复杂。比如说我们右边这个图,假设我们有六个设备,如果我们六个设备之间都有一个互相通讯的需求的话, 那我们的接线是非常复杂的,大家可以大概数一下,我们想让六个设备之间都能正常通讯的话,需要多少根这个数据线。 所以呢,根据上面的这些缺点,我们又提出了一个新的协议。首先我们先讲一下总线协议, 刚刚我们讲的串口呢,他是一个点对点的协议啊,刚刚也给大家讲了点对点的协议。一个缺点就是说当我们的设备数量非常多的时候,我们需要增加很多的一个连线啊,这是会增加成本的,所以呢我们就有了另一种 啊连接方式,就是我们的总线,大家可以看右边这个图啊,这个非常简单明了, 总线呢就是我们有一条共用的一个线,然后我们的设备全部都接在这个总线上就可以了,大家可以看下面这个图,是不是比上面这个图要简单的多啊,这就是总线协议的一个优势,我们给大家讲的第一个总线协议呢,就是 spi, 它是这个摩托罗拉公司发明的,我们看一下 spi 的 一个特点,首先是高速全双工同步,对吧?啊, 它的一个应用场景呢,主要是用在一些啊存储期啊这种对速率要求比较高的一些芯片上。我们 spi 呢通常会有四根信号线, 首先呢这个 m i s o 和 m o s i 就是 一个数据线啊,这个呢 m 就是 master s 就是 slave 啊,就是主机和从机的意思,这个 m i s o 呢就是 master in state of out, 就是 我们主设备输入,从设备输出啊,这个就是反过来啊,所以呢我们 spi 它是一个全双工,大家可以看到这里它同时有这个输出和输入两个拐角,所以呢 spi 它是可以同时进行数据的发送和接收的, 然后刚给大家讲到 spi 是 一个同步协议,对吧?刚给大家讲的同步协议的一个特点就是它有这个 crk, 就是 这个时钟信号,它就是一个同步信号。 然后第三点呢,就是这个 cs 片选设备啊,大家可以看一下这个 总线的这么一个结构啊,总线呢它存在一个问题,就是说如果我们的总线上有多个设备的话, 我们总线上如果有数据的话,我们需要确定这个数据是给哪一个从机设备的,他不像这个串口,他是因为串口是点对点的嘛,我想给哪个设备发出去,我直接啊再通过这条线给他发就行了。 但是因为我们的总线是多个设备,都是连在同一个总线上的,所以呢我们就需要啊某个信号来判断我们要发送的是哪一个设备。 我们 spi 里面呢,就是通过这个 cs 信号来选中这个设备的啊,这个 cs 就是 七 select 的 缩写片选, 我们看一下这这个图就是 spi 的 一个应用电路,我们依次对应连接就 ok 了, 大家可以看到这里有三个 cs, 对 吧?啊,就是分别对应三三个从机啊。这个 cs 通常的话呢是一个低电频有效, 就是比如说当我们的 cs 一 是低电频,然后 cs 二 cs 三是高电频的时候,那我们发出去的数据就会被从机一接收啊,其他的也是同理。 然后呢,我们来看一下 spi 的 一个优缺点,首先第一个优点就是 spi 的 速度是很快的,它可以达到几百兆赫兹, 然后呢它是一个全双工通讯,全双工通讯的一个优点呢,就是我们的交互性和实时性很高,因为我们的发送和接收都是可以独立进行的 啊。第三点呢是这个协议是很简单的,它不需要寻址,我们待会讲 iphone c 的 时候会给大家讲一下啊, iphone c 的 一个寻址。 首先第一个缺点,它的引脚数量是比较多的啊,我们每个帧机都需要一个片选,比如说我们这个图, 我们这里只有三个重机,对吧?啊?假设我们有很多个重机,我们有十个重机,那我们就需要十个 cs 引角啊,这对我们这个主机的负担是比较大的 啊。第二点呢是这个传输距离比较短,像这种 s p i 呢,通常都只适用于在同一块电路板上的通讯啊,它不像我们刚刚讲的串口啊,串口的话是可以实现 不同设备之间的通讯的啊,刚刚给大家也讲了,比如说 rs 四八五的这种串口,它可以实现几公里的这种通讯。第三点就是这个应答机制,比如说在这张图里面,我们的主机给从机一发送了一个数据以后,我们的从机一是不会有任何回音的, 这样我们就没法判断这个数据是没有被正确接收到啊,比如说我们有可能数据发错了,或者说有可能这个信号线出现了断开的现象。 接下来让我们介绍一下这个 iphone c 协议。 iphone c 其实跟 spi 是 比较类似的,大家可以看到 iphone c 是 同步半双工啊,我们的 spi 之前给大家讲的是啊,同步全双工, 它是由这个飞利浦公司开发的 iphone c 协议开发的一个目的呢就是为了用极少量的引胶来连接多个设备, 它主要是用于一些速度比较慢的设备,比如说这种啊, room, 一个传感器之类的。 iphone c 的 接口比 spi 要简单得多,它只需要两根信号啊,一个就是数据,一个就是时钟。 iphone c 接口啊,刚给大家讲的是一个同步协议,同步协议一个特点就是有这个始终信号,大家只需要记住看到有这个始终信号,那它就是一个同步通讯协议。 我们看一下 iphone c 的 一个优点,首先是 iphone c 的 引脚数量是很少的, 我们看一下这张图, iphone c 只需要两个引脚啊,不论我们有多少个设备,它都只需要两个引脚,它不像我们刚刚讲的 spi, 我 们 spi 需要一个片选, 如果我们设备非常多的话,那我们就需要很多的偏选,但是 iphone c 他 不需要偏选啊,这里呢就有一个问题,就是 iphone c 是 如何实现选中某一个设备的啊?刚给大家讲呢,我们需要确定我们总线的一个数据是要发送给哪个设备的, 我们 api 呢,是通过一个片选来确定要发送给哪个设备。我们的 iphone c 呢就是通过一个寻址的方式啊,它是怎么样寻址的呢?就是我们 iphone c 在 工作的时候会先发一个地址的数据,大家可以理解为 这一些 iphone c 的 设备都是有一个自己的地址的,大家可以理解为就是自己家里的柱子,比如说啊,几栋几号这种,我们 iphone c 会首先发一个地址信号, 这样子呢,如果某一个设备接收到了这个地址信号以后, 而且呢我们在设计的时候要注意一点,就是说我们挂载在 iphone c 上的设备,它的地址一定要是唯一的, 比如说我们第一个设备的地址就是一啊,我们 iphone c 的 一个主机,它就会先发一个一啊,这个一呢,它会同时被这三个东西接收到, 但是呢只有第一个设备他的地址才是一,这个时候呢,这个一号总机他就会发送一个应答信号给我们的主机,大家可以理解为就是有人在敲门,然后你听到敲门声以后会去应答 啊,这个就是 iphone c 总线实现啊,一个寻址的功能。具体的 iphone c 功能呢,我们在硬件课程里面不做详细的讲解啊,包括刚刚讲的 s、 p、 r 和串口啊,这个呢,我们在硬件设计中通常也是 啊,不需要这部分知识的,如果大家感兴趣的话,可以在软件的课程里面去学习。 大家注意, iphone c 这里需要一个上纳电阻啊,这个上纳电阻的作用呢,就是确保我们 iphone c 总线在空闲状态下的一个电瓶啊,因为我们的 iphone c 总线是开漏的。 关于什么是开路输出,这个大家可以自行上网去了解一下啊,这个不在我们本次课程重点里面啊,大家只需要记住, iphone c 设计的时候我们要加这个上纳电阻就可以了,这个上纳电阻的曲值的话,通常是啊 在一 k 到十 k 之间。 然后呢,我们就来看一下 iphone c 的 一个优缺点。 首先 iphonec 的 一个优点呢,就是 iphonec 的 引脚数量是比较少的,我们不管有多少个重机设备都只需要两根线啊,就是这张图,它不像我们的 spi 一 样需要一个片选信号,因为我们 iphonec 是 通过寻址来实现对 特定的设备进行通讯的啊。第二点呢,就是应答机制,刚刚也给大家简单讲解了一下 iphonec 的 一个寻址 啊,就是如果我们寻址正确的话,我们对应的设备就会发送一个应答信号给主机,我们通过这个应答信号就可以去判断我们的这个数据有没有接受错误。首先第三点呢,就是支持一个硬件流控制啊,这个硬件流控制的意思呢?就是 啊,比如说我们的一号设备啊,他如果把这个总线占用了以后呢,我们另外两个设备是没有办法去访问这个设备的啊,这个东西我们就叫做流控制, 大家可以理解为就是说我们需要等待某一个设备它的操作完成以后,其他的设备才能进行操作啊,这个呢就可以防止我们一个总线冲突的情况啊,就比如说我们两个设备啊,都在向这个总线上去发送数据 啊,这个就是 iphone c 总线相比于 spi 的 一个优点, 他的缺点呢,首先第一点很明显的是一个半双工,刚刚讲的 spi 是 一个全双工啊,全双工肯定是要比半双工要快的,因为他可以同时进行发送和接收,我们的半双工呢,我们只能同一时刻只能发或者只能收。 第二点呢是速度相对 spi 比较慢, iphone c 典型的一个速度是一个四百 k 和一个一百 k 啊,我们通常会用这个四百 k 的 一个速度。第三点呢就是一个上纳电阻,大家这里可以看到这个上纳电阻,它会导致我们的电路设计比较复杂。 好了这个协议讲解呢,我们就讲到这里,我们刚刚给大家简单介绍了一下三个常见的通信协议,现在呢我们看一下通信协议在实际电路中的一个应用,我们呢将会通过这个传感器的电路来为大家进行讲解, 我们这里准备了四个传感器,首先第一个是这个姿态传感器啊,我们这一次用的这个传感器叫 m p u 六零五零,它是一个六轴的一个传感器 啊,它主要就是用来检测我们的一个角度的,因为我们这次做的是一个智能手表的项目啊,我们通过这个 传感器呢,就可以实现我们一个手部动作的检测啊,包括我们比如说我们的智能手表可以进行一些步数的一个检测。 然后是这个温湿度传感器,我们用的是 a h t 二幺这个传感器啊,它用在我们的手表上呢,就可以用来检测我们环境的一些温湿度。 然后呢就是一个气压传感器,好,我们用的型号是 s p l 零六,用上气压传感器呢,就可以用来检测我们的海拔,这种功能 好。然后就是电子罗盘,用的是 l s m 三零三这个型号啊,电子罗盘呢就相当于一个指南针啊,让我们的手表可以拥有这个指南针的一个功能。 好了,这次呢我们就先用这四个传感器来给大家讲解一下这个电路设计好在进行电路设计之前呢,我们先看一下这几款传感器的一个手册, 好,我们首先看一下这个 mpu 六零五零啊,这个数据手册怎么看呢?之前也给大家讲过了,我们就挑一些比较重点的来看一下。 首先呢当然是这个电气测芯啊,这个是比较重要的,我们直接看这个绝对最大额定值,我们看这个供电电压是一个 零点五负零点五到六伏的一个供电电压啊,这次呢我们就统一选择一个三点三伏的电压, 然后下面呢给大家简单的讲解一下。 好,这两个引脚是比较重要的,这个二三和二四啊,看到了吧,这里写的一个 iphonec 啊,这个就是我们刚刚给大家讲到的一个 iphonec 协议, 这两个引脚就是这颗芯片里面最重要的两个引脚了,其他的引脚的话主要是一些辅助功能来用的,我们不用关心就可以了,我们主要关心这两个引脚, 然后我们继续看下一下一款传感器,这个 a h t 二幺温湿度传感器 啊,可以看这里一个 iphone c 接口,对吧?嗯,我们这次选用的四款传感器都是一个 iphone c 接口的,这样子大家的设计会更简单一些, 这里就是它的一个引脚。好,这是传感器的一些大致性能,这个就是我们需要关心的了一个电气特性,它是一个三点三伏啊,典型的三点三伏的供电。 我们再往下看一下这个接口的一个定义。好,大家可以看到这里 s c s d 跟我们上节课讲的是一样的,就是 iphone c 的 一个数据引脚和一个时钟引脚。 好,我们继续看下一款啊,下一款是这个 s p 二零六,这个啊,这款芯片一个气压的一个传感器。 好,我们先看一下第三节,这里这个绝对最大额定值啊,这里也写了一个最大的工作电压是四伏的电压啊,所以呢,我们还是选择一个三点三伏的电压,这样子我们就是统一我们的一个设计, 然后我们继续往下看第九张啊,这个就是他的一个引角排布了。 好,我们看一下这款芯片呢,它有啊,它可以支持多个接口啊,大家可以看这里 s p i 三线 s p i 然后三线 s p i 带中断,四线 s p i 然后 iphone c, iphone c 带有中断 啊,这次呢我们就选择这个 iphone c 或者 iphone c 带中断都可以啊,就是带中断的话,它有一个好处,就是说当这个芯片它采集一次完成以后,它会发送一个信号到我们的 mcu 啊,就是去告诉 mcu 传感器的采集已经完成了,这样子可以加快我们的一个处理速度啊。如果我们选择这个 iphone c 的 话,大家可以看一下这个就是第三角和第四角,那就是我们的 iphone c 的 一个数据角和时钟角了。 然后我们再看第一最后一个芯片 啊,这个就是我们的一个电子罗盘芯片啊,大家可以看到它支持的一个电压是二点一六伏到三点六伏,那我们还是仍然选择一个三点三伏的供电。 我们看一下这里就是它的一个引角排布啊,大家可以看到这里是有这个 sda 和 scl 两个角的啊,这,这其实就是我们的一个 iphone c 的 引角。 然后我们作为硬件工程师的话呢,其他的部分我们不用太关心 啊,因为这几款芯片呢,其实都是需要结合软件去使用的啊,我们硬件的话只需要知道它有这个 iphonec 功能就 ok 了,然后我们还要知道其他的一些功能,怎么配 这些呢?在软件的课程里面是有讲到的,如果大家感兴趣的话,可以去看一下软件的课程,然后首次的话我们先就暂时看到这里,接下来呢我们就在 k、 i、 c、 d 里面把这四个传感器的原理图都绘出来。好, 我们现在就进入到 k、 i、 c、 d 里面,给大家绘制一下这几个传感器的原理图,这里已经提前给大家绘制好了, 这里给大家补充一个小技巧,如果大家直接去放这些原件的话,是会发现是放不下的,因为这里我改了一下这个原理图的尺寸,就是这个边框的尺寸啊,在哪里改呢? 我们把鼠标放在这个,就是右下角这里这个任意一个字上面都可以,我们双击它,这里就调出了我们这个图纸设置的界面,默认是 a 四的一个, 大家可以看,如果用的是 a 四的话,这个是放不下的,因为我们这张原理图的功能是比较多的,所以呢我们就用 a 三来做,这里选择 a 三就 ok 了。 好,我们就来正式讲解这个原理图,我们先从这个 lsm 三零三这个电子罗盘开始讲解。首先第一角和第十四角是这个芯片的供电, 之前给大家讲过,芯片的供电引脚附近都要放一个电容啊,这个是比较常规的一个做法啊,我们这里放成零点一位法吧, 注意这个芯片它有两个电源角,第十次呢就是给这个芯片供电的一个电源角, 第一角呢是这个 io 口的一个供电角啊,就比如说我这里给第一角 vddio 供电三点三伏的话,那么这个其他的这些引脚,它输出的一个电压就会是一个三点三伏, 我们看这个第二和第三刚刚给大家讲的,我们这次用的四个传感器都是 iphone c 协议的,所以我们这里直接就连接到单片机的 l 口上就行了啊,在这个地方我们用的是 p b 十三和 p b 十四这两个引脚。 然后第六讲呢是接一个电容,这个具体的话我们看这个规格书啊,他为什么要接这个电容呢?是因为这些芯片内部虽然我们只给他供电了一个三点三伏,但是芯片内部其实是 还需要一些其他电压的供电的,但这个芯片他比较先进,他已经把其他的电压转换电路都集成到芯片里面的啊,因为他的消耗功率不大,他不像我们这个,比如说我们这个 dc dc, 我 们是外置的一个 dc dc, 对 吧? 所以这里呢,我们就需要外界一个电容啊,因为之前给大家讲解了,这些电源都是需要外界电容的,但是呢我们的电容是不能大规模的集成在这个芯片里面的,所以呢这里我们就需要给他外界一个这个电容, 第十二角和第十三角也是同理,其他呢其他的一些引角,这个芯片我们都是没有用到的,所以我们就把它放上这个非连接标识符就可以了。 下面呢我们来讲这个 a h t 二幺这个温湿度传感器啊,这个传感器呢相比这个就要简单的多了, 可以看到这个传感器对外只流出了这个 scl 和 sda 这两个拐角,当然包括这个三点三伏老生常谈的一个问题。 这里呢其实就是我们总线的一个接法,大家可以发现啊,这边的 scl sda 和这边的啊,包括下边的这些全部都是一样的,都是接在单片机的这个 pp 十三和 pp 十四的,我们可以用这个高亮操作, 大家应该还记得吧,就是按一下 esc 下面这个键啊,它变成红色,我们看这些图上变成红色的,就说明它是连在一起的。 好,这个比较简单,我们就不讲了。接下来呢这个六零五零这个陀螺仪,它比较复杂,我们会给大家详细讲解一下这个芯片。 好,我们就从顺着来讲吧。首先这个第一角是一个时钟输入引角,就是呢,我们这个芯片他是可以跟另外一个芯片集连起来的,因为他是六轴吗?他如果跟其他的芯片连接起来,他就可以变成九轴传感器啊,但这里呢我们没有用, 根据规格书上的讲解呢,没有用的这些东西,我们就给他放一个 d 就 可以了。 然后下面呢这些 n 四引脚都是 luca 那 个的,他就是未连接的,我们放这个非连接标识就可以了。然后他这个第六角呢, 是一个辅助功能的引脚,跟我们刚说的一样,他可以外接其他的一些传感器啊,来升级他的这个功能,我们也没有用到,所以放非连接就行了。然后这个也是一样的,我们也是非连接就行了。然后第八角呢是它芯片 啊,芯片的一个供电啊,这个微逻辑其实跟这个 vddio 是 一样的功能啊,我们也是就统一用三点三伏就可以了。然后第九个啊,这个引脚比较重要,它叫,嗯,地址控制啊,我们之前给大家讲过,这个 iphonec 是 有这个寻址功能的 啊,说明它的地址就是固定的啊,这个 他的地址在芯片出厂的时候就已经定好了,而且包括就是所有的,只要是这个型号的芯片啊,不管他是哪个批次的,他的地址啊一定是一样的,而且是唯一的 啊。但是像这种芯片呢,他多了一个这个角啊,他有什么好处呢?就是如果说我们这块电路板上用到了两个这个芯片,如果我们不做处理的话呢,他的地址就冲突了,对吧? 所以呢他就新证了一个这个第九角,我们可以把他接到地,或者给他接到高电瓶啊,这样呢就可以把他的最后一位变成零或者变成一啊,接到地就是零,接到啊,接到三点三伏就是一啊,这样呢就可以避免一个地势冲突 啊。不仅是说当我们用到两个这个芯片的时候,还有一种情况是,如果我们用的另外一个芯片跟它的地址也冲突了,那么这个时候我们就可以通过这个 a d 角来配置啊,这样比较灵活 好。然后第十角呢是这个 r e g out 啊,这个 r e g 就是 regulator 的 意思,就是稳压器嘛, 跟刚刚这个芯片也是一样的,这个芯片内部呢,也是自带了一个电源转换器的,所以呢我们需要外界一个电容来帮助这个电源往下去稳压。 第十一角呢是一个也是接外部功能的一个引脚,我们同样没有用到,按照规格书的接法,直接把它接低就行了。 然后是这个第十二角,第十二角 i n t, 它是一个 interrupt 的 缩写, 就是中断引角啊,这个中断引角的意思呢,就是说当这个芯片完成一次转换以后,它就会发送一个信号给我们的单片机啊,来通知我们的单片机,这个数据已经处理完成了, 这样呢,可以加快我们处理的一个效率啊,我们作为硬件工程师呢,这个功能不需要了解的太多啊,这个 i n t 引脚其实接到这个芯片的哪个管脚都行啊,我们这里是接到了 ps 啊,因为接到 ps 的 话,我们后边的布局布线会方便一些, 大家也可以把它改到其他啊,有空位置的引角都可以。第二十五讲呢,就是一个 e p, 就是 这个芯片的底部是有一个大焊盘的, 我们看一下啊,可以看到这个芯片的底部是有这个焊盘的啊,我们接上这个 e p 焊盘都是接到 g n d 的, 我们直接接到 g n d 就 行了。 这十三角呢就很简单了,就是常规的一个供电管脚,然后加上一个绿波电容。 嗯,第二十角呢也是同样的功能,它内部不只有一个电源转换器,它有两个电源转换器,所以呢这里还有一个电容输出角,我们同样给它接电容就 ok 了。 二三二四呢,就是我们需要用到的一个引脚了啊,就是我们 iphone 的 一个通讯引脚,我们直接跟刚才一样都接在一起就可以了。 好,下一个呢就是这个气压传感器啊,这个传感器呢也比较简单 啊,首先呢这个传感器根据我们之前讲的这个规格书呢,这个传感器它是同时支持 sci 和 iphonec 协议的 啊,他如果做 spi 协议的话呢,第二角就是这个片选角啊,不知道大家还记不记得,就比如说我们这个 lcd, 它是 spi 协议的,对吧?啊?他需要一个片选信号,选中这个芯片以后呢,发送的数据就会被这个芯片接收到啊,这里呢我们 没有用 spi 功能,所以呢第二讲我们就空着就行了啊。第三第四呢就是 iphone c 的 时钟和数据,也是跟刚才一样,全部接到一起就可以了啊。第五讲呢就是一个配置角啊,我们根据规格书的接法把它下拉到底就可以了 啊。第六讲呢也是跟刚刚这个讲的一样,是控制他这个 l 口的高低电压的啊,我们统一用三点三伏就可以了。 然后第八角呢就是一个供电管脚,这里呢他有两个供电,所以我们需要两个电容啊,我们要注意就是通常情况下我们每一个电源管脚附近都需要一个滤波电容,我们不能把这两个电源管脚都只用一个电容来处理。 大家可以看到比如说我们单片机这个地方,对吧?我们有这么多个电源引脚,所以呢,我们需我们每个管脚都需要一个电容,所以我们需要数量比较多的这个电容。 好,这个就是传感器的一个讲解啊,这部分电路比较简单,我们作为硬件工程师的话呢,不需要了解这个芯片 如何去使用这个芯片啊,就是如何从它内部去读取数据,去配置它内部的一些功能等等啊,我们只需要知道 这里怎么连接,然后它的一个供电电压怎么连接就可以了?如果大家对如何使用这个芯片感兴趣的话呢?可以去看软件的课程啊,里面是有详细讲解的。好,这节课我们就讲到这里,谢谢大家。

这是在 r 八千灯的开发板上实现的 p s m 加控制功能,这是一块四八零乘三幺零分辨率,支持触摸的显示屏。 ui 界面使用的是 ui 核心库实现的,这是 p s m 加控制主界面。通过选择打开和关闭这里的开关,可以选择用什么方式进行唤醒。 目前支持电视机唤醒、 u r t 唤醒、 power key 唤醒、 c 是 d e t 唤醒和 v cap 唤醒。点击配置详细参数,进入到唤醒 详细配置界面,可以对电视机的时间、 uart 的 波特率、 power key、 c 十 d e t 和 wake up 的 唤醒方式进行配置。后续电视机唤醒和 uart 唤醒这里会做成键盘进行数字输入,点击保存唤醒配置后,确定 会返回到控制界面。如果没有选择任何唤醒方式的话,点击 psm 加开关会提示至少打开一种唤醒方式。任意打开一种唤醒方式后,就可以正常打开 psm 加开关了。

大家好,有芯片需求找我,我是 mcu 等主控芯片主理人 spring。 今天我们将深入探讨嵌入式开发中最基础也最常用的两种串口通信接口。 uart 与 usart, 从概念应用到故障排查,为您呈现一份全面的技术指南。本次分享将分为五个部分,首先解析 uart 的 基础知识,然后对比 uart 与 usart 的 核心差异,接着通过 py 三二 m 零七零的实战案例加深理解, 之后重点讲解常见问题与解决方案,最后进行总结。首先我们来认识 u a r t 通用异步收发传输器,它由摩托罗拉公司于一九七零年代初开发,是早期计算机和终端设备通信的标准。 u i r t 是 一种异步串行通信协议,无需时钟线,通过约定的波特率和数据格式同步。物理层上,它支持 t t l r s 二三二 r s 四八五等多种电频标准,适用于不同的通信距离和环境。 u a r t。 的 工作原理很简单,发送方将数据逐位发送,接收方通过识别起始位 并按约定波特率采样来还原数据。一个典型的八 n 一 数据帧,包含起始位、八个数据位和一个停止位,这是实现可靠通信的基础。 u a r t 之所以成为 m c u 的 标配,得益于其四大优势,硬件实现简单,仅需两根线,资源占用少, 几乎不消耗 cpu, 通用性极强,是设备间通信的普通话。同时它也是我们调试程序的利器。 uart 的 应用场景非常广泛,从日常开发的设备调试与蓝牙、 wifi 等模块的通信,到工业控制中的数据传输,再到连接打印机等外设都离不开它。接下来我们辨析 uart 与 usart。 简单来说, uart 只支持异步通信,而 usart 是 它的超级,不仅能做 uart 的 所有事,还增加了同步通信功能,使其在高速场景下更具优势。 uart 工作在异步模式通过波特率同步, 而 usart 的 同步模式则通过时钟线精确同步,数据传输效率更高,适用于对同步性要求高的场合。通过这个表格可以直观看到 uart 胜在简单通用,而 usart 功能更全面,尤其在高速同步通信中表现出色。 我们应根据项目需求选择合适的接口。 uart 主要用于日常调试和简单通信,而 usart 则在工业控制等高速同步场景中大显身手,甚至可以替代 spi 进行高速通信。为了让大家更直观的理解,我们以 p y 三二 m 零七零为例,这 款 mcu 集成了四个功能强大的 usart, 支持多种通信标准,最高速率达四点五米比特秒, 并具备自动波特率检测、硬件留空等高级功能。这两张图展示了 p y 三二 m 零七零的详细规格和功能模块,可以看到其丰富的外设资源,特别是四个 us a r t 接口,为复杂的通信需求提供了强大支持。 接下来是最实用的问题排查部分。如果遇到完全无法通信,首先检查硬件连接是否正确,如果出现数据乱码,则需核对通信参数是否一致,并确保电瓶匹配。 如果数据丢包可能是缓冲区不足或 cpu 处理不及时,可以增大缓冲区或使用中断。 dna 呼信不稳定则多时受到干扰。具优化硬件设计,如使用屏蔽线远离干扰源,在高速率通信中误码率高是常见问题。 我们分析其原因,主要有时钟精度不足、信号完整性差、硬件流控缺失和电源噪声干扰。针对这些原因,我们提出系统性解决方案, 更换高精度精度优化硬件布线,起用硬件留空,加强电源滤波,并在软件层面利用 dma 和增加校验机制,多管齐下确保高速通信的稳定性。 最后总结一下,选择 uart 还是 usart 取决于具体需求,它们的核心优势在于简单、通用和易用性,遇到问题时优先从硬件接线参数、匹配、电瓶和信号质量四个方面排查。 感谢大家的观看,关于 u a r t 与 us a r t, 你 还想了解哪些方面呢?如果觉得内容对你有帮助,别忘了点赞、关注、评论,我们下期见!

最近两天把以前用到的一个 stm 三二串口 dma 的代码拿过来,按我的理解改了改,结果发现如果使用 u atdma 发送非循环模式,必须使能串口中断,否则 dma 发送完成后不会修改串口忙碌的状态,不能再发送新的数据,同时也不会调用回调函数。 所以如果使用 hello 库创口通过 d m a 发送数据,大家记得在 q b m x 里面把这个选项选中。

给大家展示一下 iui 结合 uart 的 一个视力,点击创口调试, 这里可以看到配置界面,你可以你可以选择配置创口,一二三也可以啊,还可以选择波特率,波特率从二四零零到两兆都可以,然后数据位有八位或者七八位和七位, 嗯,停止位呢,有一和二位效应,效应位呢?无效验机效应或者偶效应都是可以的,也可以选择十六禁止发送或者那个 hex 发送。十六禁止就是 hex 发送,也可以选择原原样发送,点击连接即可连接 对应的 u r t 口,然后发送,点击发送界面呢,这里会弹出来一个键盘,随便点发点什么, 点击发送按钮即可给模块即可给创口一发送过去。这是我们的创口机呢,已经接了一个 f t 二三二连着的 pc 端,我刚刚发的就是这一堆,然后通过 pc 端呢发 hex 格式的数据, 或者发那个阿斯克码字符在接收端这里,在接收端这里就会显示对应的数据过来, 点击清空即可清空缓存区,然后重新发送,像我们在 pc 端随便发点什么都是可以正常能发送的。

去面试的时候到底会问什么?这边呢跟大家来总结几个方向。第一个就是 c 语言基础类的,比如说指正和数组有什么区别?结构体、字节内存对齐的。问沃伦特尔的作用,中断里为什么不能做复杂的操作,然后这些基础问题一般答不上来,直接就挂掉了。第二类的话就是硬件相关的知,比如说 i f c s p i u r t 有 什么区别?上拉电阻下拉电阻有什么区别?看门狗是干嘛的,金正和时钟是什么关系?如果说你面的是比较偏硬件的岗位的话,这些基本上也是必考的。 第三类就是操作系统类,比如像进城县城,然后呢网络编程这一类的,比如进城间通信,县城的同步和互斥,然后网络通信的方式,然后以及它的各大特性,包括它的死锁啊, 是怎么产生的,上下文切换是什么? r t o s 和 linux 之间有什么区别?第四类的话就是关于项目的一个深挖,这个呢也是整个面试的重点环节,面试官可能会问哪些呢?这个项目负责了哪些部分?遇到困难的时候呢?你说的一定 要分析的很深入。第五类的话就是场景设计及时问题解决类的,就是考察你的解决问题的能力,比如说设计一个智能门锁,让你幕现场给他一个方案,特别考察你的系统思维和架构能力。 就跟大家说一下面试技巧方面的啊,第一个呢就一定要诚实,不会呢你就说不会,千万不要投机取巧,在技术大佬面前咱们都是非常透明的。第二个就是要主动,那么主动的去引导面试官呢?去问你擅长的方向。第三个呢,还是要提前准备一下,比如说你项目中的难点啊、亮点啊,一定要能够给他展示出来。