粉丝6.0万获赞30.3万



下面介绍第二个实验历程, gpl 外部中断输入历程。打开了我们的开发版实验教程文档,找到第二个实验, gpl 外部中断输入, 这个实验原理呢,就是通过按键读取外部的这个中端的电瓶,然后再通过驱动 led 进行一个高低电瓶的输出, 我们这边的话是通过 pa 零银角来实现,嗯,外部电瓶的输入 pp 四银角呢来实现 led 灯的输出啊,我们看一下原理图, 按键这一块的话就是这个按键啊,对应的就是 pa 零银角,单面机的 pa 零 led 灯的话是 pp 四眼角输出,我只要这边是高低电瓶,这个灯呢就会亮或者灭,这点有点注意的话是我们这个按键,比如说按下他就是一个高电瓶过来, 如果是按键不按,他是浮空的,浮空的话这个电瓶可能不稳定,所以我们在做配置的时候,输入配置的时候,这个银角要配置成下拉输入,下拉输入,就说按键没有按下去的时候,这个单面机银角呢是一个低电瓶 啊,如果按了按键这边呢就是高电瓶,这点要注意一下。这个实验的准备呢就说,呃,我们一块 开发板,一个下载器就可以了,因为我们这个下载器是能共三点三伏的,我们先给板子插上下载器, 下载器接电脑,这个灯在闪烁呢,是因为我们第一个时间做过,我们打开工程 编译,下载好,我们按下复位键, 按下复印键之后呢,这个灯呢,他就不闪了,因为我们的程序烧进去了,我们再按一下边上的 t 键,他灭了,再按一下亮了, 再按一下灭了,再按一下亮,这个实验呢就算完成了,就说我按一次按键,这个灯呢就会亮或者灭,变化一次说明这个按键呢电瓶呢是输入进去了, 下面来介绍一下这个内存的软件部分, 这个这个软件这一块的话主要是通过 q max 生成的, 主要是这里做一个配置啊, p 二零配置成下拉中段输入, pp 四呢配成普通的 pp 输出 啊,然后再配置这个中断,这个流程怎么来实现呢?就说我们贴 按键按下的时候,他进入了一个中断服务程序啊,中断服务程序里面呢,我们把 pp 四呢做一个输出,或者输出高或者输出低,我们按键按下之后,程序跑到哪里去呢?程序是跑到这里 这个外部零中段这个中段服务程序里面,我们在这个中段服务程序里面呢啊,做做一个 led 银角翻转输出啊,这样的话这个灯呢进来一次他会亮,再进来一次他就会灭, 这个中断服务程序是是 pa 零,他就是外部中断零,他相当于是我们是采用这个 中段上升眼,上身眼的概念呢,就是说我这个眼角从低电瓶变到高电瓶,他就会进入一次中断,我们可以从原理图上也看出来, 就说正常他是低电瓶,如果按键按下就是一个高电瓶啊,这样的话我们单面机就能识别到这个上升盐。 然后我们接下去看一下我们这个工程是怎么生成的, 这个就是我们的 q max 工程,我们来看一下它主要的配置,一个是银角输入,一个银角输出,还有一个是中段双击打开, 这个配置呢主要是两点,一个呢就说我们的 pp 四呢也配成输出,然后 p a 零呢,也配置成外部中段零, 我们看一下怎么配置,我们先把原先的给删掉, pp 四输出呢,就单击一下配置成输出,点一下 p 二零呢,就是说 gpio 外部中断零, 然后 gpio 呢我们这边要注意一下,我们刚才说了是要下拉的,正常他是不配上下拉的,我们是下拉,然后默认的话他是上升严,这个是不用改,如果是下降严 的话,那就是需要改一下。还有一个就是中断那一块的使能,外部中断零,要打勾就中断使能,这样的话您生存代码的时候呢,这个中断呢就能使能了。金正的话就是外部金正或者内部金正,这个是随你自己配置, 其他没有了,我们就这样点击下就能生成代码。 打开工程,这代码里面呢要修改的话,就是我们那个中断服务程序里面要加一个 pp 式的一个摊稿,就是输出高或者输出低,就放在这里 把我们那段代码考过来,那这个就跟我们的历程工程师一样了,这个处的话这里都不需要改,这里都已经配置好了,软件部分说到这边谢谢大家。


大家好,今天我们继续来讲这个 fx 三月的创可通讯。嗯,上次我们已经讲了,那个 就是这个穿过通讯的这个波特率格式已经怎么设?就那个 d 八幺二零,他的每一位对应的是什么意义?我们都已经讲完了,包括这个 h 零 八九目,把这个目一九零七八九,目的第二幺八零,第八幺零,他设置成绩就设成不透率是九六零零,然后数据位是八位,停止为两位这么一个通讯格式。 然后我们这个程序段呢,前面有个 m 八零零啊,这个是就是说是上电的时候抽纸画,上电的时候把这个纸给他,就是说只要上电的时候抽纸画的时候把格子设好就行了。从 poc 中找不到乱的 切换的时候一个脉冲啊,就这个时候给他一个呃,格式的设定就可以了啊。下面我们看一个串口打开,串口打开后面是一个 is 指尼,这个 is 指尼就是个 f 三,用这个 创可通讯的一个设定接收,呃,设定发送地址 和接受地址长度区域的一个指令,我们看这个 d d 四幺, d 四幺零,我们看还是 d 四幺零 k 八,就是说他设定的是 棋子地址,发送的棋子地址从第四幺零开始发八个字体,就是我发送的时候发送第四幺二、第四幺零到第四幺三这么一个长一个长度的这么一个数据,因为它是 k 八嘛,当然你这边可以改, 可以把开启都可以改,那包括这个第二零零,第二零零,我们这边他,他第二零零就代表的是我们这边,应该是这个,这个不对啊,这个应该,这个是 发送数据啊,要不要接收?接收数据就从第二,从第二零零开始接收数据一,一是接收,接收到黑八就也是八个字,要不八个字写四个字就是接收。把窗口上接收到的数据存放到第两百开始, 一直到第两百零三,刚好八个字写四个字,他这个命令就这个意思,然后他如果要发送,要发送的话,必须要八幺二二给 set, 给他一个 set, 就是我这个八幺二为一的时候,他就会发送把第四幺零一直发送到第四幺幺三的数据发送出去, 当然他发送完了,他就自己会把 m 八幺二给复位掉。啊,如果发送出去以后数据的数据接收到了以后,这个我们有个八幺二三,这个代表的是接收数据完成。啊,这不是接收请求接收数据结束标志位啊, 就是我数据已经接收完了,我发送完了以后,我数据已经接收完了。啊,已经接收完了, 接受完了以后我就说接受完了他自己不会付掉,我们必须要程序把他付掉,这个时候就是我接受完了,我就把这个付掉啊,就可以了。当然我这边是我们看这边是一个脉冲啊,一秒脉冲发一次, 他自己孵掉,如果他在有在接收,在发送起居的时候,我是不能发的,当然出口没打开也不能发,就他发送的时候这个一直要这个指令,一直要执行哦。 啊,因为我这边是跟窗口调试助手,我这边就是因为我们按照调试的步骤来,我们今天就用调试助手来测试一下我们这个程序对不对?我们能不能接受到数据?我们这个 poc 能不能接受到数据?能不能发送数据啊? 因为我是用乔治助手,我这边应该是脉冲,如果我们正常项目的话,肯定要人群,对吧?人群就是我这边是先测试一下我们那个程序对不对 啊?下面就是我们要发送的数据,从 d 四幺零一直到 d 四幺三, d 四幺三我没有给迟到,就是 d 四幺三一直为零零零零啊,那这边发送的话也从第一次节开始发送,他是 第一次结尾的话,应该是从零幺开始发,零幺零零六等于十六机子的啊,也许代表十六机子,然后零幺零六零幺九零,然后再 然后在这边就是幺六零零,就这样这么个数据后面就是零零零零,因为第一次要上没有给值,那这个时候我把它就下进去,下进去我们来测试一下, 测试成功的话说明我们的程序是没问题的啊,这样的话我们就离成功已经成功了一半, 下面我们就可以,如果这个成,这次成功了,我们就直接可以跟变频器进行通讯了啊。来,我们来看,这个时候我们来看监控一下, 首先我们要打开这个窗口,这边我们要打开这个窗口啊,不,我们先看这个先窗口调试,就是先打开 我们这个调试出口调试穿过调试助手,我们要跟那个我们这个设置的波动力一样,跟我们这个模块就是模块,我们这边也是设成九六零零, 然后我们这边八位,然后这边停止位设置二,然后点确定,这个时候我们要用 ag 就十六计时显示,这个叫十六计时显示,那这个时候我们打开啊,打开我们按我们这边用了一个 全窗口调试助手,我们 gpog 我们用了一个这个 usb 卷四八五的这么一个接口啊,我们看右下角我们可以看到这个图片上啊,就这么个东西, 那我们这边科目口是科目六啊,在电脑上可以查到是科目六,那我们打开,这时候打开,打开以后我们看到,我们看到这接收区是空白的,对吧?因为我们这边还没发送,这个时候把人民酒吧强制为 一好,他这边就一直一直在发送了,一直在发送,然后我们看右下角这个图片上我们也看得到这个啊,地灯一直在闪,对吧? 那这个我们这个调试窗口调试的时候,我们一定要就用用这两个灯,我们来判别,如果灯亮了,说明我们这个程序是对的,程序已经执行了发送出去,发送出去了阿迪灯亮了,那然后如果对方 啊,地灯啊,我们这个是 sd 灯啊,这个是发送去是 sd 灯啊,地灯是说接收数据啊,如果说我们发送到对方,对方那个啊,地灯如果亮了,说明我们这个 接线是没问题的,就这个穿过接线是没问题的,然后这样的话就是数据发送过去了,他也接触到了, 然后接受他的数据,对不对?要看他的接收程序,接收程序里面接收到接收程序里面 没有什么程序,肯定是接触的需要,就像我们这边直接放到第两百,现在的话肯定是就是我们这个这样的话,我们就如果这个灯亮了,就我们这个 s 灯亮了就说明个程序,对的,如果那边啊的灯亮了,说明我们现实,对的,如果我们 s 级灯亮, 但是他那边对方的那个啊滴滴没有亮,那说明我们的线有问题啊。如果说我们这个 sd 呢?没亮,那说明我们这个程序发送程序有问题。 同样的道理,如果对方发过来,我们这边接收到了,也是 rd 灯亮,对方发的时候也是 sd 灯亮,先亮我们这边再亮,对吧?就同样的道理,就是通过这两个灯我们可以判断是程序的问题问题还是线的问题啊? 我们来看,我们再看我们发送的这个数据是零幺零六,对吧?零幺零把,零幺零六, 是零幺九零幺六零零零零零零,我们来看,对吧?这边都接收到数据,对吧?我们看这边一秒一次,一秒一次,对不对?就是这样的零幺零六零幺九零幺六零零零零,对吧? 这是对的。然后我们这个时候,我们看这边有个超时时间,超时时间就是我发送的时候,如果超过了我这个, 嗯,时间设定二十二秒,他就认为是超时了,他可能接受的数据就不一样了。再假如说我们这个时候设成五秒,我们看 对吧?他据说他可能发送发发送零一的时候,再发送零六的时候,他可能这个时间超过了五毫秒,所以说他接送数据就认为是第二次发发送,所以他你看接送数据完全不一样,对吧? 所以说我们调调试的时候一定要注意接接,我们发送的发送数据跟我们接收数据 时间一定一定要,就是我们接受距离超市时间一定要大于他那个发送的时间,特别是我们四八五,如果重占比较多,小的时间可能会更慢,所以这个时间一定要收大一点,一般收成一百好秒还是 ok 的,如果是只有一台的话 肯定会更快啊,我们看射成一百了就 ok 了,我们看到是二十毫米也是 ok 了。我们这边是一单对一单,是直接就一个赞,所以射快一点没关系啊,这个大家要注意, 同样的,如果我们这边接收这个超市时间也要设定的跟那个他比,他发送的时间要长啊,那这个, 那这个时候我们再来,这个时候我们接收到了,对吧?接收到了,然后接收,那不是发,我们接收全是圈口调速度,你接收到我们这个发 发送的数据了,发送数据了,对吧?啊?这个时候我们不发送,我们不发送了啊?我们只接收的时候看一下,比方说,嗯,一千我们下进去, 这个时候我们就不会发送了,因为这个,嗯,八幺二八幺二,他是没有通的,这边我们就不会接触数据了,对吧?我们把它清掉,他就不会有数据了, 对吧?那这时候我们来看发,如果我发,我这边创过条是发送这边能不能接收到?我们接收到是第两百台数据,对吧? 放在第两百里面,我们看监控一下,第两百我们先把它清掉啊,这边都设成零,把这些地址都清掉, 把这数据都清, 那这个时候我们再来发送,这时候我们发送, 我们用调算过调试就是发送啊,这个时候发送,我们发送,我们来看,我们看这个下面这个灯他会不会亮啊?这个我们那个接触灯会不会亮?我们发送一下,是不是亮了,对吧? 亮了拿我们这边数据也发送出去了,我们发送是 abcd efg, 他这边是显示这个是十六警车,然后我们来看, 嗯,我们来看我们第两百里面的词,我们看这边是不是也有了?也有了我们十六计时,然后我们用阿斯科玛,他发出是 abcdefg, 阿斯科玛,我们看 abcdefg, 啊,对吧?这样的话我们就就就就 发送接收,都都收到了,对吧?都收到了,这样的话就是我们这个程序就没问题了,程序就没问题了。 好,那这样的话我们就下次我们就可以直接跟变频器直接通讯了,用这个程序,所以说这个程序就今天就讲到这里,我们下回再来讲跟 poc 啊,不跟变频器开发变频器的直接的通讯。好。

