大家好,上一期我们讲了串口通讯接线,这一期重点介绍 modbus 串口通讯的核心参数设置。 串口通讯的四个核心参数,波特率、数据位较延位、停止位,一个都不能错。波特率就是通讯的传输速度,距离远、干扰大的现场用九六零零追尾,距离近,要速度就用幺九二零零三八四零零数据位。工业通讯统一用八位,基本不用改。 校验位用来检测数据传输错误,常用无校验,也可根据设备要求选偶校验或即校验。停止位是一帧数据的结束标志,默认一位就够用。记住核心原则,阻站和重站四个参数必须完全一 致。现场调试的时候,我们可以用串口调试助手单独测试,测通了再接到 p r c 上更稳妥。工业现场最通用、最不容易出错的组合就是 九六零零八 n e。 完整参数我放在视频最后,需要的兄弟直接截图保存。
粉丝5027获赞1.6万

新北洋的九九 n p 人民票局打印机接口有网口、串口、 usb 口,今天我们连接串口打印测试一下。 首先打印自建页,查看一下打印机的波特率是多少。 接口串口波特率是幺九二零零。 然后通过电脑小票打印机的设置, 波特率选择为幺九二零零,端口选择窗口二,保存 打印,这样打印是正常的。我们再来切换一下小票打印机的泊特率,把它改为九六零零保存 打印测试打印是乱码不正常的。就是在软件中端口的切换和打印机自身的泊特率要保持一致, 比如说软件中要设定它的波特率为九六零零,或者是有的电脑它固定波特率就是九六零零, 那就需要我们把打印机的波特率更改为九六零零才能正常使用。


问各位一个问题哈,你知道串口波特率怎么算吗?可能这个问题出来之后呢,很多人一一脸诧异, 这是个什么问题呢?啊?就这么一个简单的问题,真的,我遇到非常非常多的人不会啊,为什么呢?因为这些人在学习的过程中呢?比如说他们可能利用 ai 啊,利用网上的一些就是程序的移植,就完成了工作。之后呢? 啊,反而连最基本的这种概念都不清楚的话,那么在遇到问题解决问题的时候就解决不了。就在昨天啊,我遇到一个朋友, 那他是做 itm 三二开发,然后 itm 三二芯片又接了一个 max 二三二用串口往下发数据,用的波特率是幺幺五二零零,结果呢,经常性的出现数据错误,然后他用逻辑分析啊, kim 的 逻辑分析,然后抓那个数据,抓出来之后呢, 他依然看不出哪里有问题,然后我说行吧,那个你把文件发给我,我帮你看一下,然后发过来之后呢?我一看这个波特率,他就不准,然后我说你的波特率不准,他就完全不知道波特率是个什么概念,他说波特率怎么算? 因为他在写程序的时候,他是在 atm 三二里边配置了幺幺五二零零的波特率,他对这个概念是知道这个概念的,但是波特率怎么算都不知道。我说你看找一个最窄麦称,因为波特率是异比特数据的麦宽的倒数, 你找一个异比特,这个麦宽,测一下它的宽度,用逻辑分析测一下它的宽度,然后求它的倒数就是波特率。我说你这个波特率不准, 然后他就不会断,完全不会,因为他我认为像这种虽然不是多数哈,肯定不是大多数,但是这种人大有人在。这就是我说的为什么要打好基础?你打好地基之后呢?做开发的产品 怎么样?就是你东西做出来,你遇到问题,解决问题能力就强,如果说你 基础没打好,你解决问题的能力就弱,你在学习期间节省的时间。我说你先学五幺蛋飞机 耗费一个月的时间,你在学习时间就是节省那一个月的时间,等你工作了会加倍还回来的。真的是这样,当你遇到一个不懂的问题,你去找问题的时候,你是找不到的, 然后我告诉他的解决方案是什么?第一个就是说因为它这个,它这个宽度是有误差的,脉冲宽度是有误差的,这个误差的产生有可能是 atm 三二那那边的问题, 有可能是什么? max 二三二这个地方的问题。我说你用逻辑分析去测 atm 三二跟 max 二三二之间的它的通信,先测 ttl 那 一端, 看一下他的脉宽有没有问题,因为他一开始测二三二后,后端的他是脉宽有无差的。然后你现在测一下前端的,如果前端的 i t m 三二和 max 二三二之间的也有问题的话,那么这个很有可能是 单频机程序的问题,就是 i t m 三二的问题。那如果说 i t m 三二和 max 二三二之间是正常的,而 max 二三二出去的信号有问题,那么问题可能出现在 max 二三二上,对吧? 然后呢?后来在我的帮助下,在我的帮助下,他没有先去解决这个问题,那他是把波特率降降低了一下,降低到九六零零,降低到九六零零,然后我帮他看了一下,哎,我说这个九六零零准,那么说明他的脉宽确实是有误差,当然九六零也不是绝对准啊,只是那个误差, 你,你想他有两微秒不到九微秒左右啊,他如果有两个微秒的误差, 你想百分之二十多的一个误差,但是九六零零,他的脉脉宽呢?是一百零四位秒,他如果产生了一个两位秒的误差,那么他这个误差基本上是忽略不计的嘛。百分之二的误差,那么就这样的一个原因, 那在我的帮助下,当然了,他是用的逻辑分析哈,用的逻辑分析在我的帮助下把这个问题解决掉了。我想给大家说的,为什么我始终强调啊,最好还是先打打一下基础。那么,呃,还是说每个人有每个人的这个学习经历,有的人可能对这个问题不屑一顾,觉得根本就不是问题, 但是我想告诉大家的是,我遇到很多很多人,包括 s p i。 通信, c p h e 和 c p o l, 他 都不知道是怎么回事,因为他用逻辑分析一抓, c p h e 和 c p o l, 他 不知道,并不知道是怎么回事 啊,他不不会配置,那做 s p i。 通信呢?你这两个概念都不知道的话,你也能做 s p i 通信?当然能做啊,我在 atm 三二里边配置一下就完成了。但问题是什么问题?一旦遇到了问题, 一旦你的数据通信不正常,你解决的问题的能力会很弱,那么你在还是那句话,你在学习的时候省了一个月的打基础的时间,但你在做开发的时候, 几次问题下来,你可能多耗费好几个月的时间,所以这样的我并不是鄙视这样的人,因为他们同龄学起来也是非常非常值得点赞的啊。因为因为可能从事其他的,比如说机器行业来做切入式开发,也是值得点赞的。但是我想说的是 最好把技术打好,那可能他刚开始学的时候,没人告诉他要打好技术,所以他遇到问题的时候,这个解决问题的能力有限,而且容易天花板,很容易触碰到,比如说他的薪水可能到了一万多,哎,就到顶了。但是你如果技术打好,你 这个这个空间大的话,那你可能上边的空间就薪资待遇的空间会比较大啊。当然了,我这次做的 itm 三的教程,我我也会把这基础一点点给大家讲清楚,但是在这里我想重点说明的是,呃, 学习这个东西啊,有些路呢,可以绕过去,比如说你学会编,会编语言的话,这个路可以绕过去的。因为什么?因为会编的这个优势已经不存在了啊,优势已经不存在很多,就是系语言可以很多编软件给给我们完成了一些工作, 那么程序空间也足够大,那执行的速度也足够快,所以会编不需要了。但是一些基础性的,你想,尤其做这个建筑开发的,你如果连硬件的基本的资源,硬件的基本通信的原理都不清楚的话,都不打好基础的话,那么你很难在这个行业里边。这个 就是说空间特别大啊,我希望在我的帮助下,我希望帮助的是大多数人,当然了我还是那句话,那一个班里有一百个人,那五六个人根本都不需要我帮助,人家自学可以学的很好,但是我希望的是一个班里有一百个人,到最后八九十个人都能够 这个学好这门技术,然后找到一份好工作啊。所以说我从这个角度,我希望我能够帮助到一部分人吧。好,谢谢大家。

今天由我给大家测试一下 r s 四八五输入信号隔离安全三的通讯状况。有两台电脑通过我们的窗口调试助手来测定我们的 r s 四八五输入信号隔离安全三的一个稳定性。现在我们把发送端的波特率设为九千六,在我们的 数据发送栏中输入零一零二零三零四零五零六零七零八零九,并把我们的发送延时时间设为五百毫秒,然后点击发送,这个我们的发送端已经配置完毕。 现在我们来到了接收端,把波特率设为九千六,并打开创口调试助手,好,现在我们已经接收到发送端给过来的数据,此时可以看到我们的发送端和接收端数据是一致。 现在我们把发射端的波特利设为二五六零零零,并打开我们的窗口调试助手,把我们的数据设为零九零八零七零六零五零四零三零二零一,发送延时时间设为一百毫秒。保存点发送数据,啊,此时我们发数据已经发送, 我们在接收端这儿播特率也设为二五六零零零。打开我们的窗口调试助手,此时我们的接收端的数据已经接收到。刚刚我们对 r s 四八五输入信号隔离安全三进行了九六零零到二五六零零零的播特率进行测试, 发送和接受的数据一致,通过实验证明我们的产品 r s 四八五信号输入格力安全三,在九六零零到二五六零零的波动率进行测试中,我们的数据没有 丢包的状况,通讯状况稳定,足以证明我们的产品可靠。

大家好,这里是正航机器人科创实验室,首先感谢创新工坊对我们实验室的一个赞助,那么这节视频主要来讲一下 power debug 的 一个使用方法以及它的一个优势 啊,这是我们这节视频需要用到的模块儿建材以及电池。 这个 power debug 这款产品的一个工作模式的选择以及配对方式,主要是在这个 power debug 这个软件里面进行的啊,我们可以看到它的工作模式主要有五种,那我们先从第一个本地 usb 模式讲起 啊,这个的话我们需要将发射端以及接收端都连接在电脑上,然后连接成功后啊,这里会显示这个连接状态,然后我们可以先点这个应用设置, 然后再点击更新配对,更新配对成功之后,我们可以看到这个 啊接收端了他的一个红灯,绿灯常亮,那说明已经供电,包括已经配对成功。这时候打开我们的代码, 先编一下啊,魔术棒啊第八个,然后选择这个第一批啊塞艇,然后选择这个 h i d 点, ok, ok, 然后进行一个变异 编辑下载,我们可以看到它的编辑下载速度是非常快的,相比于其他的一个有线的一个烧录,是啊 更快的。然后第二种工作模式是一个 wifi 直连啊,这个的话也需要我们先进行一个配对,然后先点击进入设置 点确定,然后再点更新配对确定,然后这个时候我们需要将这个接收端进行一个供电,就是通过这个开发板对它进行一个供电, 我们连接电源,打开开关,然后我们这里可以刷新一下 啊,我们可以看到它正在进行一个连接,然后它的状态是已连接,然后这时候我们就可以进行一个代码的一个编辑上路了啊。魔术棒的 bug, 还是选择这个 d a p, 然后 c t, 我 们可以看到还是选择这个 h i d, ok, ok, 然后下载,我们可以看到它的烧录速度也是非常快的,这个主要是方便我们进行一些无线的调试, 可以远程的去烧录代码以及进行一个调试,就是去查看一些数据,就是不用一直进行一个有线连接 啊。第三种是我们本地局域网的一个工作模式啊,这个的话还是需要我们先将这个进行配对, 发送端和接收端的一个配对啊,我们点击本地局域网,然后这里的话需要点击刷新, 刷新完之后我们就可以去选择一个无线网络,然后选择完之后输入密码,好,这里的话默认就行,然后点应用设置 确定,点更新配对,然后点确定,这里的话可以看到连接 wifi 中, 然后已连接,我们这样的话也这也是可以进行无线烧录的一个方法,然后我们再对接收端进行一个供电, 我们这边可以看到它这个已经连接好,我们进行代码的一个烧录变异好。魔术棒的 bug, 然后选择还是选第一批 set, 然后 h i d, 我 们可以看到芯片已经识别到了,然后点 ok, ok, 然后再点一点,好再下载 哦,这个的话就是他这个本地局网,他这个比较受局限的是就是你网络的一个速度, 然后他有可能有时候会出现啊烧录失败的现象,但是我们如果说选择一个网路好的话,就是可以烧录了,很快,然后这样的话我们就是烧录成功了。 然后第四种是我们一个公网一个工作模式,这个的话它还是用跟本地局域网相同的一个,但是不同的是它需要进行一个授权,这时候我们先将 发射端以及接收端进行一个配对,点击这个应用设置 用设置成功,然后点击更新配对。 这个公网模式的话需要我们啊进行一个授权,就是对我们这个设备进行一个授权,然后这个授权的话主要是在这个账号管理啊,需要我们登录一下, 登录一下账号,然后点击登录,然后这的话我们可以看到这个这个是我们当前的一个设备已授权,然后我们可以在这里点击这个加号添加设备,然后输入我们接收端的一个 mac 地址,然后点击查询, 然后这里也可以备注一下名称,然后点添加即可。然后我们回到这里,再点一个设置,点更新配对 点确定我们 这里的话,显示正在配对中,已连接,我们再将接收端进行单独的一个供电, 我们可以刷新一下, 我们可以变异,然后点魔术棒对 bug 第一批 setting, 然后看到已连接,就是芯片已经被识别到了, ok, ok, 然后再点击下载, 这个公网模式主要是代理的,所以说它的下载速度相比于前面的三种方式的话会稍微慢一些,这个也可以进行一个远程的一个操控, 然后最后一个是公网第二批模式, 然后点更新配对,更新配对成功,可以看到连接状态,连接 wifi 中,配对中, 然后这里已连接,我们可以打开代码,然后再对这个进行一个单独的供电, 然后我们可以刷新一下 这句话,就是正在配对, 然后连接状态已授权,然后配对中, 然后这里话已连接,然后我们这里点击变异,然后魔术棒 delete 来选择第一 p, 然后 setting, 然后 h i d, ok, ok, 然后稍录下载,我们看可以看到已经稍录下载成功了。 好,接下来是一个 rtt, 这个 rtt 的 话,它主要是将我们的一个调试接口附用为一个类似于窗口的一个功能,然后我们可以在代码里面看到,就是可以去啊输入 一些你想要打印出来一个参数,然后这里的话我们可以点击这个启动 rtt 啊,这个是选择的 h i d 啊,点确定,我们可以看到它已经成功启动了,这里主要总共有十六个接口啊,每个接口都可以显示了 相应的数据哦,然后它的主要一个优势是不会占用我们啊太多了。 l 口资源,就是可以将调试接口附用为类似于我们串口的一个功能,然后还不用不会占用太多 cpu 资源, 然后点击这个停止 r t t 就 可以停止,然后本节视频的讲解到此结束。

哈喽,小伙伴们大家好,欢迎来到零基础 sm 十二实战入门课程第五集, usb 串口调试。在上一节课程中,我们通过按键成功控制了尾部信号灯的亮灭,如果想要把这个亮灭状态实时显示在电脑上,便由我们调试。我们该怎么做呢? 今天我们就来解锁进入此开发中一个极重要的功能,创口通信,通过这个功能方便我们后续进行程序的调试。本节课我们需要实现的功能是,当按键按下改变尾部 led 灯状态,接着通过创口向尚未激活中数据,电脑端的创口助手就会显示相应的状态信息。 串口位于后尾板中,我们打开大深奥后尾板原理图,接着我们找到 type c 串口下载位置, 可以看到我们内置了 c h 三四零芯片,所以我们并不需要 ttl, 转串口模块即可进行串口重进。接着我们需要找到 ts 和 s 接在哪个地方, 同样的我们查找替换, 可以看到 t s 加到 pa 九, r s 加到 pa 十,这样我们就知道在 q max 中该如何配置了。 打开我们工程存放的文件夹,先进行工程管理,给每个工程再套一层文件夹,第一个取名为点亮车尾信号灯,第二个取名为按键控制车尾信号灯。 制式的工程,我们取名为简单的创口调试。 接着剪切 led 文件粘贴到第一个文件夹里, 再把 k y 文件剪切粘贴到第二个文件夹里,再复制这个 k y 文件。 这次我们不创建新工程,延续上一期的工程进行修改。接着双击打开 qbox, 在 右侧我们找到 pa 九, pa 十, pa 九配置为 uart 一 t s, pa 十配置为 uart 一 x。 接着我们使能创口一为异不同形, 波特率默认为幺幺五二零零即可。由于我们暂时不需要串口发送,无需使串口中断,这样我们就完成了简单串口调试的配置。最后我们点击生成代码, 来到 kill 中,可以看到当前多了一个串口一初十二代码。我们点击右键跳转 编辑器报错显示未定义。为什么会这样呢?那是因为我们没有编辑工程。我们先点击编辑工程, 编辑完成之后,我们再次点击右键跳转定义, 这些代码就是 cube max 帮我们生成的函数。目前我们先不管代码的具体实现,而是快速上手实现我们想要实现的功能,学会使用之后再去研究其原理。接着我们打开已知的在线文档,打开论文篇简单的 usb 串股调试, 点击命点 c, 找到并复制关键代码段, 粘贴到我们主函数中。 同样的,我们需要放在 begin 和 end 之间,不妨我们放到按键代码的上端。 这一段代码实现的就是串口重定项。简单的描述一下,就是通过重定义标准库的 f u t c 函数将我们 c 源常见的 file 输出从默认终端从定向到了单面机的串口 e 上。同样的,我们不去深究其原理,现在主打一个会用就行。 我来给大家演示一下如何打印简单的字幕创。 想要使用 point f 打印函数,我们还需要引用 s, t, d, l 点 h 这个头文件。 接着我们在主函数外循环前使用 point f 打印函数进行打印。 hello 有 方 robot。 最后我们再加上 c 语言中常见的换符杠 n 编一下工程,看是否有报错。最最重要的需要注意的是,当我们使用了 pdf 这个函数,需要点击模板框勾选这个微库,如果不勾选,程序将会卡死。 接着查看一下 reset and run 是 否勾选,只有勾选了,我们点击下载才会立马看到时间现象,如果没有勾选,需要进行复位才能看到时间现象。接着我们点击编辑零错误,零警告,然后我们点击下载, 我们还需要使用创口调试助手,打开大信号智能小车资料,打开软件安装包,打开握法,接着双击安装。同样的,我们选择 d 盘根部安装, 点击,我同意,接着点击安装即可, 可以看到我们已经安装好了,点击完成, 双击打开握法, 擦掉这个弹窗, 这就是握法的功能界面了。后续调试我们都将使用这款功能强大的调试助手。接着我们把 type c 接口接在左边窗口调试的位置, 双击打开握法,加 擦掉这个弹窗。把数据引擎改为原始数据格式,再把数据接口改为串口, 检查端口号是否为需要的 cs 三四零端口。点击连接,点击小车库按钮, 修改一下显示方式。刚刚在代码中写的数据就成功打印在电脑的上位机上了, 现在我们已经能够进行串口发送了。回到我们的主线问题,要在按键逻辑中添加调试信息,该怎么做呢? 打开我刚刚编辑的逻辑图,当按键一按下时,改变车尾灯为低电频,则打印 k y down boot led open。 改变车尾信号灯为高电频时,则打印 k y 一, down boot led close, 按键二也同理,只需把 k y 一 改成 k y 二以及 down 改成 up 即可。 接着我们回到 key 工程中进行代码编辑,这样我们需要定一个字幕参数组去存储车尾信号灯的亮灭状态,取目标 buff 大 小占起为二十, 然后到按键处理函数的地方,在按键一翻转电瓶下方书写判断逻辑,用我们上节课学过的函数去 bling 去读取车尾信号灯的电灭状态。 如果为低电频灯,则表明车尾信号灯熄灭状态。第一个参数填入端口号,第二个参数填入需要读取的引脚号,直接把上面的复制下来, 当其很等于 g l pin reset 即低电频时,则表明车尾信号灯为熄灭状态。 然后在判断中把需要输出的字幕串存储在 buff 中即可。接着进行简单的注视,读取 p d 七是否为低电频。 这里我们需要学习的是一个新的函数,或许你在 c 源中也学习过 s t r c p y 这个函数,它的作用呢,就是把后面的参数复制到前面的宿主中,第一个参数会放入宿主名称 buff, 第二个参数为我们的字幕串不等 led close, 关闭车尾信号灯。 使用这个函数呢,需要声明一个头文件 str i n 点 h, 我 们来到头文件声明区域进行声明。 同样的,车尾信号灯为高电瓶时也是类似的操作,我们把判的逻辑复制下来, 设改为 set, 接着把这个函数也复制粘贴,把 close 改为 open, 这样就可以了。最后呢,进行 open up 打印,输出, 打印 ky 移动,然后加上我们字无算 buff, 就 可以正常打印输出了。 字无算打印呢是摆放 s, 我们再加上画横幅,杠 r 杠 n。 同样我们加上一些注式,复制原来的注式,然后修改为高电瓶, 接着把判断逻辑也复制下来, 判断高低电瓶都不需要修改,只需要修改打印函数的部分,把一改成二, down 改成 up 即可, 这样我们全部代码就往上好,等以后看到零错误的警告,等我先连上烧录数据线,然后我们点击烧录, 我们把数据线接在左侧 type c 的 串口调试接口, 接着来查看端口号是否正确,波特率为幺幺五二零零,点击连接。接着我们按下按键进行观察 窗口打印了相关调试信息,其打印的信息和我们预选的一样,这样我们就完成了基础的打印调试了。 通过这节课,我们成功实现了创口单向通信功能。下节课我们将学习如何驱动大深奥智能小车的转向舵机,实现更准确的方向控制。如果有任何问题,欢迎在评论区留言讨论,记得点赞加关注,让我们下期再见吧!

嵌入式有个经典翻车现场,你写好串口促使化代码,波特律数据位停止位全配对了,烧进去没输出。查了三天,发现是串口外设的时钟没开, cpu 不 会自己动,靠时钟信号推着走。但芯片上爹默认跑的是内部 rc 震荡器, 频率不太准,功耗低,你需要高精度或者跑高速的时候才手动开启外部经镇,等它起镇稳定再切过去。如果这一步没确认经镇稳了,切过去的瞬间,系统就崩了。问题来了,外设们要的频率各不相同, usb 要四十八兆赫兹,串口要精确的,波特律时钟 a、 d、 c 有 自己的彩样,时钟定时器可能要更高的频率, 怎么从一个固定频率变出这么多?靠时钟数?它是一套分频和背频电路,信号进来,先过 pll 所相环,把频率乘上去,然后这路高频主干分叉通向各个外设,每条分支上有分频器,可以把频率降下来。还有一个关键玩意儿,外设时钟使能位,这是个开关,不打开时钟信号根本到不了外设。 你寄存器写得再对,外设等于没上电。除了忘记开时钟,第二个坑更隐蔽,分频配错,你以为串口挂的是七十二兆赫兹主频,算好了波特律寄存器值, 但实际上它前面还有个分频器,你忘了配,实际时钟源是别的东西,波特率差了十万八千里。更坑的是现代 mcu 的 串口时钟很多是分数,分频不是简单的除以整数,你得对着参考手册的公式带进去, 错一步就乱码。调试时有个小技巧,很多芯片支持把内部时钟输出到某个引角上,用时拨气一量,你就知道这录频率到底对不对,比对着代码干瞪眼,快多了。 时钟数本质上是芯片的节拍分配网,不是供电网,每个外设都在等自己的节拍配好了,整颗芯片像交响乐团配错一个支叉,那把小提琴就沉默了。下次串口没输出,除了查代码,先查两件事,时钟使能未开了吗?这根树枝上挂的频率源是你以为的那个吗?