粉丝419获赞1822


大家好,这里是一起学单边机,在这个 stm 三二 q ide 这个编语环境下,有人说这个未带的操作无法实现啊,其实是可以实现的,但是有几个要注意的, 那么我们要理解味道的操作其实还是基于这个呃姬存器的操作,对不对? 那么对这个 stm 三二,比如说 f 幺零三系列,他的寄存器地址并不用发生改变,你只是用了不同的边缘环境,那么肯定是微带操作是可以执行的啊。然后我们来看一下,呃,微带操作是这个他的这些定义啊, 那个比如说他的映射,呃映射地址啊, io 输出寄存器的映射输入寄存器映射啊这些 这些地址,他本身的地址没有发生任何变化,你变异器只是用原来的 q 五,现在变成了 s t m 三二 q 八 a d e 自带的这个变异环境啊, 所以什么未带操作肯定是不受影响的,那么你操作不成功是因为你可能把它加载了别的地方。我现在实验发现,你只要单独生成的点 h 和点 c 文件,对于未带操作单独生成这么两个文件, 那么微带操作是可以正常使用的啊。比如说我现在就是做了一个点 h 文件,那么就 private 的点 h 对应的点 c 文件,我们打打开 来找一下对应的点 c 文件放在背带里。 好,这是点 c 文件,这点 c 文件里头,我把这个长的微秒及延迟啊, 和我们的微带操作放在一起了,这个点 c 文件里的只是两个微秒及延时的这个函数啊, 如何实现的?那么点一次文件里头呢?就是对于微贷的操作,主要是一个计存机地址的映射,对不对?这个跟我们平常的网上这些成视力程序是一模一样,你把它复制粘贴过来就可以了, 然后注意的时候你点一次文件里一定要加载 stm, 三二 f 幺五就是你指定的,还有酷文件,还有酷的头文件,把这个加载进来就可以了,别的不需要任何更改,完全一模一样,那么来实验做一下,那么就让 tc 十三刚才我们上的那个银角进行一个翻转,对不对?前一个视频我们做过了。好,那我们把它加载到我们的原来我们的店,这个我们做的泰斯特这个文件夹里,对吧? 你可以自己重新生成,或者是你把你有现有的进行复制都可以啊,重新生成也很简单,我,我们找到你的,嗯,扣函数对不对?这个文件夹这里头就是一个 sous, 一个引酷路的,引酷路的就是生成你的点一次文件夹,你在这边文件夹右键 你可以看出新建这一头,你选择新建一个头文,建 high fire 对吧?那么你可以比如取取名 beat bench, 对吧?然后点一次点击完成。 好,同样的,你要在对应的在这个 sus 这里头要添加一个 sus 发呀,那么就是点 c 了, 点 c 文件。好,我们把刚才我们的这边的点一次文件里的内容给他复制过来啊, ctrl c, 然后放到你的点移池文件中,一定要在这个 红定义,这个衣服拿着底放,底放和安的底放在中间对吧?你不要放在别的地方,然后我们把微秒即延时这部分,我们不需要再把它删掉。好,这就可以了, 点 c 文件里头可以没有任何东西,因为我们这里没有实体的,具体的函数全部是用红定义来完成的,对吧? 那么就可以加载了。 b 半点 h 就可以了。好,我们在我们的刚才这个头文键里头,我们加载,那么加载头文键也注意啊,要加载到刚才说了要按的和 bing 当中的啊,就是 bing 和按的当中的这部分,是吧?引酷路的 hider, you the and hider, 看到吗? 就会 uzi 比更嗨一点,你要加在你这个呃 当中,我们要加载到这里, 其实加载到任何这个比定和暗的之间,他都是不会被删除的。 好,那么刚才是这个,我们把这个我们的标志位应该定义到变样里头,是吧?合理一点, private define micros, private vibra virubos 定义是吧?变量定义,我们加载到这里,我们保存一下。 好,这时候我们就可以进行微带操作了。我们原来这是用的库函数银角进行翻转,是不是啊?那我们现在试一下,我们这个银角是 pc 十三是吧? pc out 十三,我们让他做一个翻转,翻转是曲飞,是不是 pc out 十三?我们原理是一样的啊,这个是中文的飞号了,我们要把它切换到英文的感叹号。 好,这就完成了,我们来编一一下。 好,正在变异, 零错误,零警告,对吧? 然后就剩下他在连接烧录器,然后进行烧录了。 嗯, 好,烧炉完成了啊,我们用逻辑分析抓一下,其实效果是一模一样的。 好,可以看一下啊,刚才是五百零一点一,是不是这边一样的, 所以未带操作,在这个 stm 三二 q 八 ad 环境下也是可以使用的,但是唯一的去注意的就是你要单独生成点 h 或者点 c 文件,把它加载进去就行了,不能在现有的这个函数底下。我试过,呃,在比如说我们在 点命,点命点 h 这个文件中,我把这个微带的操作加进去,这个红灯一加进去就不行啊,我试过的 加进去就不行,我想利用的点一次文件不行的,你要单独生成一个啊,就没有问题,大家可以试一下。那么这样的话,在个你用六未带操作对一些 l 端口进行读或者写单独的操作是不是很方便? 尤其对于一个 io 口的制操作啊?那么比如说举个例子给大家看一下,我用一个 io 口作为输入音教,那么我们在定时器中段中,比如说我用的定时器中段,这是定时器中段的回调函数,他所有的回调函数啊,一个类别的可能都放在一起了。这个地方 就是如果你用的定时器一二三四用的比较多,这里就比较乱,对吧?比较臃肿,你可以把它再封装成一个小函数,这样的话看起来简简洁一点啊。比如说这里头是,呃,就是定时器回掉函数,你先判别你这个回掉函数是哪个定时器产生的,我这是定时器四 产生了,那我这里就用了个微带操作,看到吗?读 pb 十三眼角的状态,那么连着读,如果连着读八次都为了 低电瓶,就是八毫秒,这个银角都被低电瓶,我们认为这个银角是可靠的,接了低电瓶,那么就相当于一个祛痘按键被按下了,然后长时间按的话,我一个技术值在家, 那么就相当于可以判断按键的长按,是吧?这是一个按键操作,就是用了未带,看到吗?这样的话,不是,是不是 程序比较简单?当然你用库函数读一个 gpl 端。呃,银角的这个状态也是可以的。有个 red 拼函数对不对?那么写起来比较长而已。他们基本的操作都是对计算器的读取嘛,原理是没有,是相通的。好,那么这就是未来操作, 切记,未带操作你要单独生成一个点 a 一或者一个点 c 文件,然后单独来完成啊。 好,这节视频就到这里,欢迎大家对我的视频评论、转发、点赞,谢谢大家。

开发单变机常用集成开发环境什么是集成开发环境?集成开发环境及大家说的 i d e。 只用于软件开发的工具,通常包含编辑器、编意器、调试器、图形、用户界面等集成多种工具的应用程序开发单片机的集成开发环境有很多,通常包含三大类,通用、专用和自己搭建集成开发环境。 通用 id 是指支持多种芯片的一种 id 工具,比如即支持 stm 三二,又支持 gd 三二等各种不同厂家单片机的 id 工具。 凯尔根据单片机类型不同分为四类,不同的 i d e 分别是凯尔 c 五幺、 c 幺六六、 c 二五幺和 m d k i a r 也是根据单片机类型不同分为 多种不同类型的 id ia 二,相比凯尔分的更细,支持的单片机型号也更多。 embedded studio 是一款主要针对阿莫单片机和 risk five 处理器的集成开发环境 专用 id e 是指支持特定型号单片机或特定环境的一种 id 工具,比如只支持 s t m 三二单片机的 s t m 三二 q i d。 再比如支持 r t fred 实时操作系统的 r t fred studio。 还有 针对 r doino 系列开发套件的 r doino ide。 如果你觉得市面上的通用和专用 ide 都不是你喜欢的类型,那么还有一种方式就是自己搭建开发环境,常见的就是基于 eclipse 和 vs code 环境搭建自己的 开发环境。好了,本期就分享到这里,本视频对应的文章教程可以在我公众号后台回复关键字嵌入式软件工具查看详细的内容。

嗯,大家好,被最新发布的 tm 三二 q 八 m 叉二惊艳到了啊,设计效果还是非常棒的,因为他们最新的这个版本摒弃了之前的那个采用 java 那 种方案的启动方式,那种方式太慢,又大又慢,占用内存,呃,还还非超级的超级无敌大。 所以说现在这个改用这个类似 vs q 的 采用的这个方案的话,不仅设计效果棒,而且虽然占内存大,但是 要比之前更加流畅,这一点还是非常有优势的啊。这是我这里安装好了给大家展示一下,大家要下载直接在这里下载,在官网这个地址上直接下载就行啊,这里下载安装,不过现在下载的话需要大家注册账号才可以下载 啊。然后大家看我这里是安装了这个外部的移动硬盘,速度也速度也非常快,大家看这个速度,这个它有外部的 usb 移动硬盘,大家看到这个速度已经非常快了,然后这里的话我只是简单创建了个工程,这里的话我直接给它打开啊,看一下 这个速度处理速度还是非常快的啊,你比之前强多了。你看之前的话,他这个打开之后呢,老是直接卡在那个 z i p 压缩包那个文件下载上,每次都卡在那里,几乎每次卡 不知道,也不知道是网络问题,也不知道是怎么回事,他经常卡在那个地方,大家看现在的效效果都非常棒了,哎,他这个现在,你像这个现在这个 啊,你像这样的这个音角音角选择,大家看音角现在不像之前了,你在他这个之前的时候,你选择一个之后呢?他一直就卡在这个,你要他这个选择之后,他就选现在不用了,直接大家看直接就可以浏览,非常的方便。这个音音角有什么功能?直接就可以浏览跟选择,非常的方便, 非常便捷,比之前方便了很多,我个人认为,个人认为方便很多,大家可能因人而异,大家可能有些用户觉得这个这种方式并不方便啊,然后其他的用户觉得觉得 比之前方便,但是大家根据自己的情况,大家可以体验一下是他这个相关的音效选择情况,然后呢再往下,他这个是时钟,这个时钟设计比之前也很多优势啊,有一个其中有个最大的优势是什么呢?就是他这个地方,你比如他这个地方 啊,这里的话,你看这里的话你选择了哪些?这个这个下面啊,有哪些时钟呢?他这里面直接可以,直接可以,直接可以给大家展示出来,非常方便,比之前比之前要优势一些。大家看比如这个这个时钟下有哪些 哪些外设,这个时钟下有哪些外设都给你展示出来了。哎,这一点就非常的不错,像之前的话也有,但是没有那么这么直观方便,不是不像现在这么直观方便 啊。这是这个还有其他形式跟之前差不多这一块,然后再往下啊,再往下都是相关的这个拍摄的选择,相关拍摄的选择也非常不错啊。呃,他这个呢,具体 特别是拍摄这一块好不好用呢?需要实际体验,因为他这个好配置,好用是一方面,关键是配置之后他是不是有错误,配置之后是不是正常,这一点非常关键,你看之前他的,有时候啊,配置之后他有些错误配置,当然那个属于 bug 了, 这个都大大的另说了,大家现在跟之前稍微的区别,你要用到之后啊,直接激活一下,激活一下,然后相关的选项直接都配置出来了,大家看一下,相关的选项全部都有了 啊,也是非常方便。像这些 g p l d m a 啊,相关的都可以设置,跟之前是一样的,只是说现在更加个人认为啊,更加直观一些,比之前 啊更加方便一些。好,他是这种的,然后再往下添加相关组件外设,现在他这个是外设很爽啊,好像没有添加,也可能说工程的问题啊,刚开始创建的时候很多组件可以选择,现在这个组件只剩一个了,我没有兴趣研究后边,后边后面再给大家,后面有时间了我再研究一下,是 这样的一些组件选件的效果啊,再往下啊,这是一些其他的也可以添加 讲了一些东西啊,这这种,然后再往下的话,是到一个关键的一个地方啊,现在工程生成,工程生成跟之前有很大的一个区别啊,之前的时候还是生成 mdk 五的功能,现在注意不再支持 mdk 五了,这一点非常重要。 然后现在是直接针对的 mdk 六, mdk 六啊,就是采用的 open cms 这个方案,之前跟大家分享过, open cms 六对应的就是那个 mdk m t k 六,现在没有 m t k 五了,大家注意啊,注意这一点,不知道后面他的这个发布的那个 i t m 三二 v 八那个系列 m 八十五那个是不是也是这样? 如果没有 m t k 五的话,只有 m t k 六啊,这 m t k 六虽然说好用是好用,但是他这个,你像他这个,比方说我这里吧,粘着,粘着粘着这 id 功能,我生成了功能,生成功能它不能直接能用啊,大家看我生成了之后,它不是直接就能用了, 这个就非常不方便了,也不知道哪里的配置问题,后面有时间也需要有时间了再研究一下。你像这个,你像这个什么呢?像这个,这个 atm 在 二十七系列,二十七系列有个职业生呢,就可以用他这个还有点区别,后面是有机会我再研究一下啊,这是初体验啊,初体验,后边真正体验的时候我们再研究 就是这一块,大家看这是 m t 六啊,总的来说呢,它这个界面效果啊,设计啊,都比之前的要优化,要提一个档次, 总体来说要提一个档次。然后现在就是更重要的是什么呢?它生成的工程十分好,这一点,呃,很关键,因为它这是手版,可能肯定还有这样那样的问题,后面等他们客户们更新了我们再关注啊。这是本期视频,简单的做一个分享,谢谢大家的关注。

大家好,现在来录制 s 天三二 cube id。 第四讲 a d c 在 d m a 模式下扫描多个通道。 在我的 csdn 这也有一个文字版的教程,需要样片的可以找我进行一个申请。这里使用的开发版是 sdn 三二官方的一个 newcose 的一个开发版, 我们先生成一下工程,选择我们对应的一个芯片, 这里还是使用创口 or 进行一个打印, 波特率就是常见的幺幺五二零零, 让我们看一下我们使用的一个 a d 口,都是在呃 duno 的这一个 c m 八的这个六聘的这个座子里。我们使用 p a 零, p a 一和 p a 四来进行一个模拟的一个测试, p a 零, p a 一和 p a 零, p a 一和 p s 对应的就是这三个通道零一和四的一个通道。 让我们来开始配置一下 a d c 的一个一些基础配置, 我们看一下这个数据的话,选择右对齐,这我们使用了三个通道,我们先把通道, 我们可以看到现在的话他这个多通道的一个扫描模式是没有办法使能的。我们先把通道改成我们对应的三个通道, 这里输入了三个通道之后,这个它会自动开启,然后 dma 的话需要开启一个连续转换的一个模式, 开启完毕,可以看到现在一二三的一个通道都是对应的一个 通道零,然后我们将它进行一下分配,分配完了之后呢,我们在 dma 这个设置这里我们就先要进行一个添加,我们的一个 dma, 这用的是一个 dma 一的一个通道一, 所以的话我们用一个 word, word 的话就是一个字一个字,对应的就是三十二位,就是四个字节。 好,我们来进行一下工程的一个设置,这个始终的话修改到自己对应的一个 速率就好,然后在工程这 选择需要保存的一个目录,这里的话就选 s, t, n 三 cube id 就可以,代码,这里的话就选这些默认的就行,然后点击生成我们的一个工程, 此时已经成功的添加完毕了。 然首先的话为了让我的 片的可以打印的话,我们在 c c 加加这个工程设置,这里面有一个 m, c, u 设置,我们勾选上这两个,这样的话我们才能够将数据给打印出去。 添加对应的一个重定向的一个代码和它的一个头文件。 可以看到这里是已经对 dma 和 adc 进行了一个使能,那我们要 我们先定一下变量,等一下我们讲一下这个 d, m, m 的一个模式, 最使用的就是一个 h l 库的 a, d, c, c 大跌眉就是开启一个开始,不是开启开始 a, d, c, s, dma 的一个模式,它对应的是一个 a, d, c 的一个通道。然后由于是使用 dma, 它是需要将一个将它获取到的一个数据保存到一个地址里面, 这里用一个数组来保存他的一些数据,那既然要保存数据的话,那肯定是需要一个他的对 的一个长度的,我们先编一下,可以看得到这三个参数分别是一个 a, d, c 以及它的一个 buff 的一个地址,以及它的一个一个,它的 一个长度不是长要获取的一个数据的一个长度,这里的话就获取三十个, 我们先将这行代码给复制下来,等一下我们会详细的进行一个讲解, 这有一个回调 函数,这个回调函数的一个意思呢,就是说当数据获取完毕的时候,他会进入到这个回调函数里面,然后我们判断是否是 a d, c 是获取完毕,如果获取完毕的话,让 a d c fred 这个标志位置为一, 然后至为一之后它会执行主函数里面的一个这行贷嘛先将 我们要打印的是 p a 零, p a 一和 p a 四的一些数据,由于我们是获取了三十个的一个数据,但是它的通道是只有十个的, 我现在就举十个七八, 由于是一个连续扫描的一个模式, 由于是一个连续扫描模式,然后通道的话它就是按下面的一二三来进行一个扫描,它获取到的一个数据,那分别是一个 c h 零 c h e 这样一直下去,然后他的这个 这个长度的话一共是三十,然后这就三个通道,那相当于其实就是每个通道获取十遍, 那么的话这一循环就是先将它的一个数据全部都保存下来,分别保存,因为我们有三个通道,我们就分别保存到 a d, c 一, a d c 一杠二, a d c 一杠三这三个变量里面, 然后保存完毕之后, j 再进行一个除湿以及 以及计算它的一个电压,计算完毕之后我们再重新开始我们的一个 dma 的一个扫描,我们编一下看一下它的一个实际的一个情况。 哦,还有一个就是如果没有办法将程序塞入进去,要记得勾选这个调试模式, 现在的话因为没有 开启这个下载 solo 口,他现在是没有办法进行一个 solo 的。我们重新生成一下代码, 我们重新编译一下,然后下载进去。 接法的话就是这样, p a 零接一个 v c c 就是三点三伏, p a 四接个 d, 还有个 p a 一接个二点零伏, 可以看到他现在打印的这个指示基本上是相等的,我们调调节一下他的一个电压, 好,我们把它调到二点四三, 这显示的和这里输出的一个电压基本上是一个相同的。那我们可以看到在我们这一个毁掉函数里面,它会有一个停止 dma 的 一个一个函数,在这里的话我们使用的是一个 正常的一个模式,正常的模式下他为什么要加这个停止呢?我们先注视掉看一下他的一个情况, 然后我们重新下载进去, 可以看得到它现在它的一个数据会有一个错乱,就是 dma 传输的时候,如果是读取内传片段的话,会有一个仲裁器的问题, 如果你不加这个停止的话,它保存的数据可能会出错。虽然你在这里重新进行了开启,但是尽量的话 在你不使用的时候还是将它关闭比较好,然后需要开启的时候再重新进行一个开启,这样的话就会避免这一个数据错乱的一个问题。 然后还有一个就是一个这个回还环形模式的一个 情况,这个环形的话我先讲一下环形的话,就是说他只要开启一次,他的数据永远都可以读出来, 但是,但是呢如果是一个普通的模式话,他开启一次之后呢?下次你再需要读的话,他要重新开启,他的区别就在这。这个回还模式的话,他的一个数据他会一直保存,当他保存到三十之后,他又从零 开始,一直到三十,然后保存完之后又从零开始,这样以此类推。这是一个环形的一个模式,我们先把这个 star 也给关掉, 我们先把这些都给注视掉, 现在的话它只在这 well 循循环里面最上面这里开启了一次,然后我们看一下执行的一个代码情况, 嗯,现在已经是下载进去, 可以看到它的一个电压是完全不会变的,如果我们把这个给 调低了,调成二点零伏,他他也是不会变化的,除非我们复位一下,你看复位一下他只会读一次之后,他就再也不会读了。 然后这个普通模式的话就是你开启一次,那就要就是要不断的开启,他才能不断的获取一个数据。然后我们现在切换成一个这个环形模式来看一下, 然后我们再重新下载进去, 然后可以看到这里有两次读的数据是错误的,就是开启之后他获取数据也是需要时间的,如果你 为了他更亲切的话,你可以加一个一个岩石,这样的话他会更加的一个精确。 那我们看一下复位,可以看到加了这个延时之后,他读的数据基本上是对的。 然后我们看一下 g 只开启了一次,但是它的一个电压值是会一直改变的,比如说我们再降低一下, 降到一个 e f 九,零点九九,可以看到它的这些电压也会跟着改变, 可以看到现在的一个 d r 是可以跟着改变,就 是这一个环形模式的话,对代码的一个要求就没有那么高,但是对应的它的因为你的 d m a 它是一直在一个开启的一个状态,那它的功耗可能会更高一点。 当然你也可以像我们刚刚学用的那一个模式, 就是你读取完之后将它关闭也是可以的。我们来看一下这一个情况, 可以看到此时 它读出的一个数据也是一个正确的, 要调到二点三二,这读出的是二点二一基本上是相同的。 那么 a d c 多通道 d m a 模式下的一个正常模式和一个环形模式都已经讲解完毕,谢谢大家。

今天和大家推荐几个免费的 stm 三二开发环境。第一, stm 三二 qbide, 这是 st 公司官网推出的免费集成开发环境,说一下这个环境已经包含了 stm 三二 qbmx, 可以根据图形界面的配置自动生成出手号,代码, 代码编辑、仿真调试都不在话下。第二, v s 扣的加 arm 七 c c 交叉编译链,这种方式需要对 v s 扣的比较熟悉,当然网上也有很多教程,但毕竟是通过扩展差价的配置实现的集成开发环境容易出现一些小问题,比如需要仿真就要修改相应的配置文件。第三, m d k community, 也就是 q mdk 的社区版,通过 q 官网的用户注册后会得到注册码,解锁后的 q 除了一些中间键无法使用,以及部分高级功能受到限制,对于常见的 stm 三二学习是足够了,且使用方法和商用版本的 q 无异。使用这个版本 就是注册 q 官网用户的流程,麻烦一点,且都是英文的界面,比较考验大家的英语能力。以上软件下载地址我们放在了评论区。

stm 三二 qb max 大家应该都用过吧,现在 st 推出了 stm 三二, qb max 二,彻底重构了软件以后,新的 st 芯片将在 qb max 二上生成,以前的芯片继续使用 qb max 一, 大家可以去官网下载体验一下,如果没有 s t 账号或者收不到下载邮件的同学,可以找老师发一下安装包,我安装好了,带大家先云体验一下。这启动界面搞得和芯片一样,还有一个定位, p 一 一角有细节,启动是要快很多,和原来的逻辑类似, 选择创建工程的方式。芯片目前只有 c 五系列,随便选一个。这里和原来不一样了,需要先设置工程名字和路径。 这个影角界面漂亮多了,很细腻,现代化的感觉。依旧是可示画的操作,右边可以直接显示影角相关的信息,甚至兼容五幅这种信息也有,也可以左上角搜索,影角高亮也挺好看的,还能四十五度旋转。 第二个是时钟数界面,新版的细节多了很多,可以具体到某个外设的时钟,原来的倒总线就不显示了, 还能表格显示。时钟配置,纯文本形式,方便以后喂给 ai 了。接下来是外设配置界面分类逻辑和原来差不多,每个外设需要先激活才能配置,选择不同的调试方式。对应的引角这里也会罗列展示。 g p i o 的 配置和原来也差不多,中间键目前只有 free r t o s 这部分支持比较少,还多了一个 pad 模块,我感觉类似二 d o a o 那 种酷,以后硬件有什么模块,这里就勾选什么模块。最后是工程设置支持的工程只有三类,一个 i a 二, 一个 c m s i s 只支持 ac 六,也就是不支持各位的 t o v 五啦。对于新的 q b m x 二大家感觉如何?评论区交流一下。

大家好,这里是一起学单面机这节视频,我们来看一下 stm 三二,在这个 stm 三二 q 八 id 变异环境下,外部中断的使用啊,其实配置起来非常简单, 我们在这个图形配置化界面的时候,我们配置一个呃 led, 就是 pc 十三这个音角作为一个输出显示,因为最小系统版上本身这个 led 啊,就外界的 led, 那么很方便的观察我们实验现象, 然后我们配置一个 pb 九银角作为按键输入啊,这个按键输入呢,我们来看一下,我们把它设置为外部中断九, gpio 就是外部中断九设置。那么在系统这边配置里头还是老规则啊,我们上来首先要系统实 中就 rcc 配置啊,那么包括我们的外部的 rtc 适中,我们用外部的三二七六八精振,包括系统的适中,我们用外部的 hse 八兆的精振。 然后配置完以后,在这个时钟数这边,你直接这边数七十二就可以了,系统会帮你自动识别一个最合理的方案,达到最高的时钟,那么它自动配置好就行了。 那么在 project manager 这里头,项目管理器这里头呢,一定要注意,在这个扣的 generator 这里,我们点击 把这个点 c 和点 h 文件呢是单独生成啊,不要都堆到命函数的底下,这样的话比较比较乱好,那么剩下的配置还有就是我们要烧录,如果你是使用这种四线值的串型烧 哇,就不是用创口啊那种线,再强调一遍,是用接接令可或者这个踢令可的四线指烧路,你这里头要点点击 serry y 啊,把这个点击,那么它会占用单片机的 pc 十四啊, pa 十四和 pa 十三这两个音角, 再加上电源的两个角四限制烧录就可以了。那么为了输出,我们看调试的效果, 我们要把这个创口一选中,我们把创口一这里设置为一部通信模式啊,我们点中他,那么 pa 九和 pa 十 一个作为 tx, 一个作为 rx, 其他的全部默认,包括波特率啊,停止位,还有教练位,还有我们的数据通讯是八位,不用开他的中断啊,其他全部默认就可以了。好,那我们来 来看一下,在主函数我们点击保存,那么或者点击你这个齿轮按键,他会自动的帮我们生成一个初始化的函数啊,这里在生成。 哦,对了对了,这个忘讲了,这个关键的我们是要实现外部中断是吧?那么在 gpio 银教里的注意,刚才我们 pb 九 我们设置了外部中断,是吧?然后在 pb 九这个端口里我们选择,那么我们把这个 pb 九内部的上拉给他打开,这样的话,当我们的 pb 九我做了接这个按键按下的时候,他接的 dd 电瓶, 那么我们就把这个 gpl 的模式呢?这里头看有六种模式,三种是中段一,三种是事件,我们一般用中段,对吧?那我们就显示选择下降沿中段 foreign a 值,对吧?当我们按一下下降压中断,第一个是上升炎,第二下降炎,第三个是上升炎和下降炎都能出发,我们选择下降炎,后面三个是世界啊,对吧?我们不用管它,我们用中断上拉,然后我们把这 k 雷宝加上 k u 字勒宝,这个说过了,非常方便,因为他在主循环的命点 h 文件中会帮我们做一个统一的这个叫地方红红定义,这样的话方便你以后移植啊,你就不用单独去改每一个银角了, 你只要把这同样的银角,你这个银角如果是换到了 pb 五,比如说,那么你的红电翼还同样用 k k, 那么在主函数,主函数中你不用做任何更改啊,他会自动的帮你配置好了,都好,那么这个配置就完了,对吧?然后 后在我们的中段函数,我们可以看一下 nvse, 这里头你也要把这个外部中段这个史能勾上啊, 这个外部中段的聘的第九角到第五角,他是用的同一个中段元啊,可能是当初的资源比较有限吧,他是用的同一个把这个勾勾上啊,同时你可以在这个 啊系统的 nvic 里去确认一下,就是在这里可以看出来,那么第九角和第五角是用的同一个中段元,包括他的抢占优先级和子优先级啊,我们都把它默认为初始为零就可以了,不用管他。 好,那么再重新生成一下我们的 code, 那我们在中断后就做了一些什么事情呢?就是你按键按一下中段时候,我们就在中段函数里打印一下一个状态啊,或者让 led 丁进行一个翻转,非常简单啊。好,那我们看一下 中断,那么中断的函数啊,所有的函数都在哪里呢?我们打开这个项目管理器啊,点 sous, 你点着这个,这个后缀名是 it 点 c 的,那么系统所有的中段都在这个 文件里啊,所有的中段,那我们就可以找到我们刚才生成的外部中段啊,看在这里啊,第二百零四行,我们的外部中段九到五,这个银角,他是个中段处理函数,那么他会掉用到什么呢?掉,掉用这个 黑窑库的外部中断,我们再双击他,然后点打开定义,那么他会跳到这边,他是在 gpio 点 c 这个文件底下有这个 中段处理函数,那么他会判断是否产生中段长段,中段的话会冲啊,清除中段标志位,然后就会来调用这个中段回调函数啊,我们再看这个中段回段回调函数呢,就在下面啊,可以看出来前面是个 wake, 是个弱定义啊。 落地,落地,你是什么意思?就是相当于一个系统的自动生成的一个备用函数啊,如果你没有自己写这个中断回调函数,那么他会调用这 wick, 如果你写了中调中段回调回调函数,就是你保持名字是一样的,那么他会优先使用你写的函数啊,也就是 说这个相当一个备胎哇,那么我们来看一下,我们点击, 那么他会找到有两个,对吧?因为有一个是我们自己写的,我们掉命函数里头, 那这就是我们自己写的在 u 字扣的比定啊,你随便找一个地方,一般我们放到中段,放到最后嘛,函数末尾的地方, 那么这边有个优则扣的比根斯和安德斯之间说过啊,一定要放到这里头,你才重新配置的时候,这函数才不会丢失,对吧?自己写的, 我们在这个中断回调函数里做什么呢?我们对这个银角进行判断,是不是我们的 k 银角,就是我们刚才的 pp 九银角产生中断,是的话,我们我这边做了个比较简单的应用啊,那么这个程序其实是不合理的啊,就是我们延时二十毫秒再判断,然后我们用未带的操作,对不对?前上一节 视频讲过了,判断这个银角是不是产生低电瓶,如果确实低电瓶了,我们让 pc 十三,这个银角就是 led 这个银角翻转一次啊, 然后我们同时用窗口打印,如果眼角为高,我们认为这个因为是低电瓶点亮吗?我们打印啊,因这个 led 电灯是 off 的状态,如果眼角为低,我们打印一个 led 这个昂的状态,同时你可以通过板子上观察到。好,那么就这么简单,我们把这程序下载进去, 然后我们来用创口来看一下实验的现象啊, 嗯,这个我建议还是说到原来这个话题了,创口中断呢啊,这个中断外部中断不建议作为按键检测,因为为什么我们用定时 器啊,可以很方便的做按键检测,而且它执行效率比较高,嗯,也更可靠。你用外部中断呢,是应该 你给留给系统,比如做这种中断唤醒啊,让系统修灭以后作为唤醒或者紧急事件,让他做一个呃,做一个响应,因为按键呢,不太适合,因为你按键判断必不可少,你要做祛痘的功功能啊,那么在这里头肯定要你要加延时判断,或者是 呃,或者是又多次采样,这样是不太合适的,我们用定时器,后面我会给大大家讲啊,我们来看一下主循环我们做了哪些事情啊, 一上来我们回到主循环开头吧,加载头文件,这些不说了,这 private 也给大家讲过,这头就是微带操作,包括一个岩石函数啊,我们写在这里头,那么上来就是初始画,系统十中的配 是 gpl 初始化,然后创口初始化,创始初始化了,头后面会加创口的话,我们就加载了一个什么呢?加载了这段大家可以从网上自己去找,有很多的方式来实现那个普润台 f 函数,我是靠的是这种啊, 有不同的方法都可以实现着普润台 f 函数,这个比较用的比较多,加载一个标准的输入输出库,然后加这段代码,你直接复制进去就行了,这样的话普润台 f 函数就可以用了,非常方便啊。 然后我额外就是做了一些判断,就是上电的时候,我们来判断是产生了这个上电复位,还是我这个外部银角产生的复位,就是我那个单片机的呃,复位银角按下了产生的复位, 然后继续呢,就是我们来产生,就是打印,我们的串口已经准备好了,然后系统正在运行,打印这两句代码,你可以看出来, 我们刚才呢,我重新按一下啊,我单边接一下复位,大家看一下啊,它会产生,因为我是按了复位引角,外部引角复位,对吧?然后串口准备好了,系统正在运行,对吧?那就是我们运行的状态, 这时候我们主循环里是没有任何程序的,可以看出主循环没有任何的语句,对吧?我们按一下外部中断,眼角就是我们按一下那个 k, 我们外接的这个按键 啊,可以看出来他就会打印,这时候你会观察你的 led 灯是关闭的,我们再按一下 ad 灯点亮,关闭点亮就如此啊,但是大家可以放下来,他不是很灵敏,是不是 就是百分之九十还是识别成功了?有,那么偶尔一两次还是识别有问题的啊,这并不是说他没有响应到,是因为他响应的太快了啊,这外部中断只要有电瓶的变化,包括这个抖动啊,他都会被识别出 出来啊,所以这个做识别的话你要加岩石,加了岩石的话判断可能是受会受到一些影响的,这个所以不太适合于做按键,可以看出来总体来说效果还是不错, 那他都可以实现出来这个 l 眼角的变化,但是我更倾向于这个外部中段眼角用来做紧急事件的响应,或者是把系统从比如说待机模式或者是停机模式把它唤醒啊, 做外部中断啊,外部中断好像,大家看一下,好像你做待机模式啊也不能唤醒啊,我们可以看一下待机模式只有 特立的唤醒眼角,就是我们的 pa 零眼角可以唤醒或者适中眼角,看门狗眼角,外部复位型号就这么几个眼角给唤醒了,那么停机模式唤醒的资源就 比较多了,那么这些省电模式的话是依次等级加高的,那么你关掉的功能越多,那么相对说你幻想的方式就会越少,这个很好理解,对吧?所以最功耗最低就是待机模式, 我们一般用呢,可能是用到停机模式比较多啊,睡眠模式的话用的比较少。睡眠模式因为你看只关了啊么内核其他的功能没有关啊,其实你感觉不到系统已经进入睡眠了,因为你系统中经常会运行一些中断判断,他是不停的在被唤醒的, 所以这个用的比较少,因为他的外设没有被关闭,包括他始终也没有被关闭啊。好,这个下节再讲,那么这节就给大家做了一下外部中断银,呃,银角作为外部中断啊,非常方便是不是?我们几乎没有做任何的操作,只是配置了一下代码都自动生成,我们直接 完成自己的回调函数就可以了,非常简单。像我们以前用这个标准库的话是怎么用呢?我们是要设置外部中断,要开呃,复位银角的时钟是吧?把复位银角时钟打开,然后要把外部银角和外部中段线做一个连接,是不是要写一些代码, 把它绑定在外部中段线上,然后再完成回调函数,再回调函数,呃,中段函数,中段函数中,我们要清中段标志位,是不是啊?然后再做判断,现在的话,你连中清中段标志位的话什么都不用啊,因为我们这个 q 白 d 这个环境下所有的 产生的中断,他会帮你自动的把中断标志为清除了啊,那么他会产生中断函数,在中段函数处理中,他会先判断中断,然后再清除中段标志位,这些全部都是系统帮你完成了,你只要 关心的就是中断函数的完成啊,而且中断函数大家可以可以看出来,系统都有一个备份啊,相当于一个备胎,那么你不写的话,备胎会帮你完成,但是备胎你就没有任何的语句啊,你就看不出中断效果,所以说我们要做的就是完成我们自己的中断回调函数啊。 好,那么这节视频实验现象非常简单,就是做一个银角的外部中断,我们做了个按键,对吧? 好,后面我们来给大家继续来演示,我们把这个中段的这个按键呢作为一个系统的这个停机或者是待机模式的唤醒音角。我们来看一下实验效果。这节视频到这里,欢迎大家对我的视频评论转发点赞,谢谢大家。


大家好,现在来录制第九讲双 a d c 轮巡模式,扫描多个通道。 在我的 c、 s、 d、 n 这里有一个文字版的教程,需要 s、 t 或 g d 样片呢,可以找我进行一个申请。我们先创建一个工程, 选的是幺零三 r b 的这款芯片,使用的是 s t, 官方的 newcose。 这一个开发版就是这个样子的。我们先 配置一下创口,这里的话是已经引出来了。在这引出来了两个创口,可以进行一个,方便我们进行一个连接,然后可以打印我们的一个数据。 这个配置过很多次,我就不详细的讲解。 播特率,这里选择幺幺五二零零。在开发版的这个 c 八 在一个母座上,这里的话都是一个 a、 d 口,这个是一个丢挪的一个标准的一个接口。这里的话是有六个 a d 口偏零, p a 一、 p a 四、 p b 零。下面的 a 四和 a 五的话,要看你板子上的一个店主是接了哪两个。我的是 s、 b 五,六和五一是连接上了,所以就用 p c 一和 p c。 要注意一下 p c 零是对应的是最下面的 a 五, p c 一对应的是 a 四,这个不要弄错了。 我们就用这六个通道来进行一个模拟的一个配置。其中 a、 t、 c 一使用的是上面的 p a 零, p a 一和 p a 四, a、 d c 二的一个通道,是 p b 零, p c 零和 p c 一。我们进行一下配置。 这时候 p a 零、 p a 一和 p a 四就已经设置完了,他们映射的就是一个 a、 d、 c 一的一个通道。 然后要注意的就是这下面的一个配置。这个是一个独立的一个模式,然后分左对齐和右对齐,这使用的是一个右对齐, 此时它的一个数量是还是一,如果是一的话,这三这 这两个都是不能进行一个使能的。这个是一个扫描的一个模式,你只有一个通道的时候,他是没有办法进行一个扫描的。 以及这个间断模式也是没有办法进行开启。这我们用了三个 a、 d、 c 的通道,这我们就先改为三。可以看到这下面也同步到了三个通道,此时这个就会自动开启,就没有办法进行一个关闭了。 因为多通道的时候他会开启一个扫描模式,然后这一使能一个间断。在这下面的话,你要将他的一个通道给放进去。 由于我们使用的是一个轮巡,所以的话 d m a 不用进行一个开启中断也不用进行一个开启。此时我们配置完了 a、 d c e, 我们 再用相同的方法配置一下 a、 d c 二。 此时的话 p b 零, p b p c 零和 p c 就已经配置完毕了。然后还是用刚刚说的一个相同的方法,首先你用到了几个通道,你这个数字就填起, 然后把它的通道对应好它的一个广角, 然后就可以生成我们的一个工程了。 这个调试口的话还是打开一下会比较好,就是 p a 十三和 p b p a 十四。 生存完毕之后,我们打开一下工程, 首先还是对我们的创口进行一下 啊重定向,这样的话方方便我们进行一个数据的打印 以及一个数据的存放。这里的话 a、 d、 c 一 buff 的话就存放 a、 d、 c 一的一个数据, a、 d、 c 二 buff 就存放 a、 d c 二的一个数据。 可以看到在这里主程序这已经对 a、 d、 c 一和 a、 d c 二以及创口二进行了一个初始化的一个设置。 这时候我们可以对它进行一个校准, a、 d c 的一个校准。校准完之后,我们打印一个 a d c demo 的一个 一个这样的一个文字。 在这个 m c u 设置这里,你要把这个 paint 给打开,不然的话它会有个报错,打开之后它的报错就会消失了。 由于我们是一个轮巡的一个机制,所以 a d c 开启一次,它就是扫描一个通道,再次开启的时候它就再次扫描下一个通道。这里的话就一个 well i。 小于三的一个循环,就是连续 获取三次的一个数据。这三次的一个数据分别对应的是刚刚设置的一三个通道。当然这个 a、 d、 c 二同样也是使用相同的一个方法。 获取完毕之后,我们编译一下。 对应完毕之后,我们下载进去看一下它的一个实际的一个情况。 可以看到此时他就已经是正常的打印了。 我们看一下我们的一个切法,它的切法就是 p a 零接个 v c c p a 一接个两幅,这个两幅是一个可变的。现在我接的是一个一点三幅左右的 p a 四是居然低。然后下面的 a、 d、 c 二的通道是这样的一个接法。我们看一下我们的一个摄像头, 像我这个输出是一点三五伏。 可以看到 a c 的话,这个 p a e 和 p c e 分别接的是一个可变的一个电压, p a 一对应的是一点三四,和这个一点三五是差不多的。还有一个 p c 一, 你看这个是差不多的,这时候我们把它的一个电压调大一点, 那现在是一点八六伏。 可以看到 p a e 对应的是一点八五,还有一个 p c e 对应的是一点八四。说明双通道轮循去 检测 adc 是成功的配置。 本章课程就已经讲解完毕,谢谢大家。