gd 三二 f 三零三使用 pa 八输出内部时钟频率,你一定要收藏!前面给小伙伴介绍过串口发送和接收异常可能的一些原因, 其中就有说到时钟频率对于一部通讯的重要性,而我们通过程序去配置的时钟都是理论值,那如果想要获得内部一些时钟频率的实际值,需要怎样做呢? 今天我们以 g d 三二 f 三零三为例来教大家如何通过 p a。 八口输出内部时钟频率。需要注意的是,有些 g d 三二系列不一定是使用 p a。 八口,小伙伴们需要自行查找资料确认。 首先我们来看一下基地三二 f 三零三的时钟数,其中左下角的位置有一个 ck alt 零的链接图,根据图示我们看到通过 ck alt 零可以 将系统时钟 c k s y s 内部高速经震 c k e c 八米外部经震 c k h x t a l 以及 p l l 的二分之一频率输出出来。实际上 c k alt 零就是 p a 八引脚。我们来看一下基地三二 f 三零三 data 视野中的广角定义, 可以看到 p a。 八口的一个 alternate 类型功能为 ck out 零,所以我们需要配置 p a 八为复用类型。另外,在库文件 g d 三二 f 三零 x r 库点 c 中定义了时钟输出函数,而库靠的零 can five 在函数注视中已经将可调用的参数列出, 但需要注意红色方框以外的参数仅可用于 g d 三二 f 三零五、三零七及互联型 c 奥产品。小伙伴们可以自行查看 g d 三二 f 三零 x 系列 hd 和 cl 产品系列时钟数的不同哦。好,了解到以上内容,使用输出 p a 八口输出内部时钟频率就很简单了。比如想要实现 p a 八输出外部高速精振的频率,可以编写程序如下, 将这段程序下载到 gd 三二 f 三零三开发版上,使用试播器测量 pa 八口就能测量到外部高速精震的频率了。 这里需要说一下,外部高速经震起震后是一个正弦波,而通过 pa 八输出的波形是一个方波。如果你也有基地三二 mcu 相关问题的话,请在评论区留言。
粉丝13.0万获赞1.1万

下面由我就为大家进行开发版教程的第一讲的讲解。第一讲呢为 r c u 始终配置及输出实验。 在我们系统开发之初啊,我们需要准确的了解我们当前系统的时钟配置,这样的话呢,我们才能够进行准确的定时,包括外设的通信等等。 因此的话呢,我们在开发之初需要去了解和验证我们当前系统时钟的具体配置是多少。那么本地城的话呢,主要就是为大家进行讲解系统时钟的相关的一些配置,以及呢,我们可以将一些时钟进行输出进行验证的一个试验。 本实验呢主要包含五个部分的讲解,第一个的话是实验内容,第二个部分是实验的原理,第三个部分是硬件的设计,第四个部分为代码的结 解析,第五个的话呢是试验的演示以及结果的展示。首先我们来看试验内容的讲解, 是内容的话呢,本实验啊主要学习以下两方面的内容,第一个的话呢是 icu 时钟的原理以及配置,就是原理部分的一些讲解和介绍。第二个部分的话呢,是 icu 时钟的输出的验证, 我们来进行第二个部分的讲解,就是实验原理的部分。首先呢为大家进行 r c u 的时钟数的原理的介绍, g t 三 f 三零三系列的 m c u 的时钟数啊,如右图所示,那我们将其呢分成了三个部分,一二三。 首先的话呢,我们来讲解第一个部分,也就是主系统时钟以及外视时钟的配置。主系统时钟的话呢, gd 三 f 三零三系列的 系统时钟呢,可以配置最高一百二十兆,我们调为比的行驶,我们可以猜,这里看到主系统时钟最高是一百二十兆,他有三个来源,零零幺,零和零幺的配置,那么零零如果说在 c s s 这个控制位 选择零零的话,那么系统时钟的输入就是内部的八兆作为系统时钟。如选择 cs s cs 选择幺零的话,那么选择 pl 作为系统时钟,那么 pl 的话呢,它可以有两个来源, 一个的话呢就是内部八兆进行两分屏给 pl 进行备品。另外一个部分的话呢,是外部的时钟,或者是内部四十八兆进行一分屏或者两分屏,然后再给到 pl 进行备品,这是系统时钟 pl 的一个配置。另外如果说 c s, c s 选择 零幺的话,那么系统时钟他来源于外部等高速晶体,这是系统时钟的三个来源,可以选择内部八兆,可以选择 pl, 也可以选择外部等高速晶体。 这种时钟的话呢,再经过 h b 的分频可以给到 h b 的时钟, h b 的时钟呢,最高也是一百二十兆。那么 i h b 的时钟,它可以为 e x, m c 提供时钟,也可以为内核 s o, m d, m a, f m c 等相关的一些部件提供使用啊,也可以为 c t g c t g 提供时钟的时候,大家可以注意这里有一个八分频,然后还有 sd r o 的时钟的输出,还有为 p c l k 一就是 appe 的外设进行提供,有低速外设时钟,然后为 timer, 包括一二三四五六十一,十二十三这些外设提供时钟,为 prvr 高速的速外设时钟进行提供, 然后还有 tam 的零七八九十提供时钟,还有就是 idc, idc 的时钟的话来源的话它可以选择两个,一个的话呢是在这部分它是可以通过 ipbr 的时钟进行分屏而来。另外一部分的话呢,它还可以通过 h b 的时钟进行分频,就是 i d c 的时钟的部分就在这里的进行的一个配置。另外的话呢,我们可以看到这有 usb d, usb d 的时钟的话呢,它也有两个来源, 个是内部的四十八兆,这是内部的四十八兆的 usb 的时钟。另外一个部分的话呢,是通过 pl 啊,在这里 pl 的话进行分屏, 一一点五二二点五三点三,三点五四,这些分屏的配置需要注意的话呢, usb 需要有一个四十八兆的时钟进行提供,因此的话,如果说我们选择 pl 进行分屏给 usb 来进行使 使用的话,那么对于 p l 的话,它的要求就需要有四十八的相关的倍数,比如七十二兆啊,九六兆啊等等这一些时钟才能够给 p i usb d 呢来提供四十八兆的那一个时钟。经过分屏之后,这个的话呢就是我们主系统时钟以及外设时钟相关的一些配置。 下面的话我们来讲解第二个部分,第二个部分的话呢,就是 r t c 和独立开门口的相关的一些时钟配置,我们可以看 r t c, r t c 的时钟的话呢,它也有三个来源,通过 r t c s r c 这个控制位呢来进行选择,它可以选择这一部分啊,就是外部高速晶体进行一百二十八分频给 r t c 来作为 r t c 的时钟, 也可以选择三二七六八的外部的低速的晶体来给 r t c 来进行提供时钟,也可以选择内部的四十 k 给 rtc 来提供时钟,就是 rtc 时的时钟的选择部分,独立看门狗的话呢,它就没有这么多的选择呢,它只能选择内部四十 k 来作为独立看门狗的时钟的来源就是这两个。第二个部分的时钟的介绍, 再来看第三个部分,第三个部分的话呢,就是时钟输出的一个配置,在 g t 三 f 三零三上面的话呢,它的时钟输出啊,主要可以选择四个,一个是 c k s y s, 也就是系统时钟的输出, c k r c 八兆,可以将内部八兆时钟进行输出。 c k h x t l 是将外部的高速警体的时钟进行输出, c k p l 是 p l 时钟,然后注意需要有一个两分频这个数,不需要配置的默认两分频的一个输出,这是 四个输出的选择,我们在代码上的也有相关的配置,具体相关的配置的话,一会在代码的讲解部分会为大家进行介绍。 外部高速晶体的原理啊,就外部高速晶体可以选择的范围的话呢,是十到三十二兆,如果说系统中有易不通性以及高精度的定时等应用场景的话,建议呢是需要选中 最好选用外部的高速精,正因为外部高速精密啊,具有更高的精度,在 gd 三 f 三零三代应用中啊,我们建议的话呢,读者啊可以选择八兆,十六兆,二十四兆,这样呢适中, 因为外部的晶体输入给 pl 的时候啊,仅可进行一分屏或者两分屏啊,选择其他的频率的精震啊,可以很难以配到最高一百二十兆的系统失踪啊。如果说需要跑满这个基地三二五三零三一百二十兆的主屏的 的话,那么建议的话呢,外部晶体的时候去选择的时候就需要注意一下,他有一个两分屏,然后呢再进行背屏,这样的话呢,因为他有个两分屏,如果选择比如啊,二五招啊等这类的之中啊,就可能很难 配到一百二十二的这样的一个失踪的。另外的话呢, h x t l 啊,外部晶体啊,具有时钟监测的一个功能,只为 c k m s e n 这样的一个控制位啊进行将为使能该功能使能后的话呢,一旦监测到 h x t l 失效, 那么 htm 将自动被禁止中断计算器啊,这个是 rcurng 中的 h x e l 始终主色的中断标志,将会质疑并产生的 m i 不可频率中断。 使用者呢,可以在 a m i 的中断中啊切换到内部时钟,重新进行时钟配置啊,可用于 h x t l 失效情况下的异常处理,这是一个时钟监测的一个功能, 内部高速时钟的一个原理。 g 三二五三零三系列的 m c u 啊,内部的高速时钟有两个,一个是 r c 八兆和 r c 四至八兆。 r c 八兆的话呢,比较常用,因为它具有相交于内部的四至八兆来讲,它更具有更高的精度。 另外的需要注意啊,内部高速时钟并非它是一个精正,它只是一个 r c 的一个震荡器,因而的话呢,它比较容易啊,受外部环境的影响,常温下的话呢, r c 八兆的精度啊是百分之一,这个是 在单 shit 中数据手册中的一些关于内部八兆时钟的一个描述,可以看到这一部分的话呢,就是常温下的一个精正的一个范围,内部的一个高速时钟的一个范围,负一点零到正一点零的这样的一个范围,就是高速的内部 八兆的时钟。内部的话呢,还会有一个 r c 四十 k 的低四时钟,该低速时钟呢,可以给 r t c 以及的独立开门口来进行使用 r c 四十 k 这样的一个时钟呢,测试的精度啊就比较差。 如果说呢,作为 rtc 的时钟员啊,可能会存在较大偏差的一个情况,如果说使用者使用 rtc 建议呢,可以选择 l xtl 外部低频地震, 或者是使用内部的高速时钟对 r c 四十 k 进行校准。较准的方法的话呢,就是内部高速时钟对 r c 四十 k 进行捕获,然后调整 r c 四十 k 的催目值,以使内部四十 k 呢进行一个校准,这是内部的一个低速时钟的一个部分的介绍。 外部的低速晶体的原理,外部低速晶体啊,一般选择的是三二七六八赫兹的一个 外部的低频行政,外部低频行政可以选择作为 r t c 的时钟。如果说有一种应用场景,比如说我们 r t c 需要在 v d d 掉电以及被 bat 不掉电的应用场景下面需要工作的话,就需要外挂低速的经济,这是一个应用场景下的一个需求。 时钟输出的话呢,也为大家介绍打了时钟输出的功能啊,可以输出四到一百二十兆的时钟,具体通过的话,扭了 c k l 的零 s e l 的控制位来进行实现。 另外呢,需要注意的话呢,将 c k l 的引脚啊,一般是 p m 八的引脚配置为推网输出的模式。另外的话呢,具体的 c k l 的引脚啊,我们可以通过数据手册来进行选择和查看。 下面呢为大家进行硬件设计部分的讲解。首先的话呢是这个高速的时钟的 部分的硬件高送时装的晶体的电路啊,如下图所示,其中的外部的高速晶体啊,我们东方红的开发板上选择的是八兆赫兹的一个晶体,匹配电容的话呢,是选择的二十批发,该匹配电容啊,可以参考以下的公式, c 一等于 c 二等于两倍的 c low 的减去 c s, c 一和 c r 的话呢,也就是外部的匹配电容。 c low 的话是晶体的负载电容。 c s 的话呢,为 p c b 以及 m c u 引角的杂闪电容。 cs 的典型值的话呢,一般是十个批发,这个可能可以根据不同的硬件包括走线会有一定的差异,因为呢选择负载电容约为二十批发的精。这样 匹配电容的话呢,就可以选择 ip 八左右,需要注意,晶体的尽量靠近 mcu 的引脚进行摆放,晶体引脚的走线尽量的等长, pcb 的区域呢尽量进空,走线呢可以包地。另外走线呢,如果说不等长呢,匹配的电容可以适当的选择不同的匹配电容以适配不同的杂散电容。 哈尔巴啊,就是这样的一个反馈电阻,一般选择的是一兆欧姆,该反馈电阻的作用呢,是为减少精震输出波形的斜波分量,提高精震的稳定性。该电容呢,并非呢是必须的, mcu 内部的话,也有一个四十 ki 的一个反馈电阻, 如果说我们带英文的时候啊,这个仪罩的不焊接,其实呢也影响不大,建议在电路上呢,可以进行预留。二二九的话呢,是一个一百欧姆的一个串组,用于的线流以及引角保护。 另外的话呢,车辆经典引脚的波形啊,可能会存在 ck 啊 o s c 音这一个引脚,它的为比较好的正旋波, o s a alt 引脚呢,可能会 存在机变,这是一个正常的现象,不影响实际的使用,因为 m c u 内部啊,它会为 o i c 引脚的话呢,进行整形,整成方波来进行使用,也就是说一般的话 o i c 引脚引脚的话,它是一个比较规整的一个方波不正旋波。 那么如果说读者在需要测试的时候呢,可以测这个阴角的这样的一个波形。外部低速晶体的一个电路的设计, 外部低速晶体,这是我们对应的东方红开发版的外部低速晶体的电路,选择的是三二七六八赫兹的一个低速晶体,匹配电容的话呢,选择的是十个批发,就是 c 三二和 c 三四, 然后它的计算公式的话也是两倍的 c lo 的减去 c s c s 的话呢,也是 p c b 和 m c o 引角的杂产内容,一般的话呢,建议的是以无批发作为参考值进行计算 推荐的。选用外部晶起的时候呢,也可以选择晶起的负载电容,在十个批发左右的,这样的话呢,外部处匹配的 c 一和 c 二的电容值啊,也就是十个批发左右 pcbloud 的时候,尽可能的靠近精力的引角进行摆放,这是外部低速晶起的电路的设计。 好的,下面呢为大家进行实力代码的一个讲解。我们打开我们东方红开发版的第一个实验,就是 rcu 始终配置及输出的实验, 我们进入到主函数的文件,主函数文件的话呢,我们可以看到一个慢函数,慢函数的话呢,里面的代码我为大家进行一个讲解。一个的话呢是一个开发版的串口的一个配置,因为我们将一个串口进行输出,所以是一个 take out 的配置和 output 的一个实体演示。 这个的话呢, rcuc tom clock can 飞个一百二十兆,这个函数的话呢,是将使用外部八兆的晶体进行备屏,然后将系统始终配置为一百二十兆,我们可以看一下这个函数的一个功能,如果说读者选择的是其他的晶体的话,那么我们该如何的去调整和配置? 首先的话呢,我们可以看到这里的话呢,有一个,在这里有一个倍频的一个配置,呃,因为我们选的是八兆,八除以二的话呢,就是四兆,四兆的话呢,我们倍频的话呢,就选择三十倍频啊,就会得到一百二十兆的一个失重。 如果说读者选择的其他的晶体啊,就可以选择去修改这样的一个背屏的系数啊,就可以得到其他的系统时钟,这是系统时钟配置的一个相关的介绍。 ok, 我们在系统时钟配置完之后的话 呢,有一个 c k alt 的 configure, 这个函数的话呢,主要就是用于 c k alt 的输出的配置,主要分成了两个部分,一个部分的话呢,就是将我们的 c k alt 引脚对应的就是 p i 八引脚配成的 a f p p 的模式推广输出的模式。第二个的话呢,是第二轮 icu c k alt config 的函数,将我们的一个相关的时钟输出到银角上,它里面的型餐的话呢,我们在 g t 三 f 三零三上仅支持 c k c ton 啊,就是系统时钟的输出, r c 八兆的时钟的输出, h x t l 的时钟配置输出,以及 c k p l c l 的时钟两分频在输出啊,都是可以通过相关的红来进行配置的。当我们将 c k l 的配置完之后,我们就可以通过 p i 八引脚来查看我们对应的时钟。这个 实验的讲解的话呢,一个是时钟的配置,一个是 ckled 的输出的验证。本历程中啊,我们将系统时钟配置为一百二兆,然后进行了 c k alt 的输出的配置,那我们可以通过 p i 八引脚来验证我们当前的系统时中配置的是不是一百二十兆。好,我们回到 ppt 下面呢,我们来看一下实验的结果,已经演示实验结果的话呢,首先我们将 p i 八的银角啊外接到石拨器上,然后呢,将本历程中编译通过之后,骚入到我们东方红的开发板中, 通过试播器啊,我们可以观察到试播器的系统时钟进行的输出,如右图所示啊,在本地程中啊,我们将系统时钟一百二十兆进行输出,通过试播器我们 可以看到当前的这样的一个频率啊,是一百二十张赫纸。下面的话呢,我们也可以通过一个啊视频来为大家做一个演示的展示。 好的,本试验部分的话呢,就讲解到这里,感谢大家观看。

各位 gd 三 m c u 开发者大家好,下面呢为大家介绍 g d 三 m c u r r 工程的下载和调试。首先呢,我们打开一个 g d 三 m c u 的 r r 的工程,在此呢,我们以 g d 三 f 三零叉 物件库中的啊工程为例来为大家进行讲解。我们打开当对应的啊工程之后呢,我们可以在工程名上右击选择 rebuild 哦,对当前的工程啊来进行编译 啊。首先呢,我们需要保证我们当前的工程编译在没有报错的情况下,我们才可以进行当前这个 r r 工程的下载和调试。大家可以看到我们当前的工程呢是没 没有报错,没有 wording 的, ok, 我们据当前工程的进行配置,进入到 options 的这样的一个配置里面,我们可以点击到第八个,第八个下面的话呢,我们可以选择我们所使用 到的下载调试器。比如说我们当前使用的是东方红的开发版里面的话呢,是搭载的是版载的 g link, 我们需要选择 c m s i s d a p 的这样的一个调试器。假如呢,我们读者使用的是 j link, 那么需要选择 j link 的这样的一个 driver, 这个的是我们根据我们目标版的 调试器来进行配置的。 ok, 我们配置完成之后,我们点击 ok, ok, 就完成了我们当前的工程调试器的一个配置。在我们进行下载和调试之前呢,我们需要将我们的目标把调试器连接到我们的 pc 上,连接完成之后的话呢,我们可以进行点击这个绿色的按钮, 是当漏答案的 debug 来进行呢,对我们当前工程进行下载和调试, ok, 我们点击一下,点一下之后的话呢,就是对当前的工程进行下载和调试啊,并进入到的这样的一个调试界 面下, ok, 我们可以看到这个有一个绿色的箭头指示的一个位置的话呢,就是我们当前代码背后的位置,就是停留的位置,就已经进入到我们这样的一个调试的界面下,下面呢为大家讲解一下啊,一些常见的一些调试工具的一些使用。 这个红色的按钮的话呢,就是 stop debug, 就是退出我们当前的调试模式。调试的界面进入到的将那个 编辑的职业界面下,这个按钮的话呢就是 step over, 就是代码单步运行的这样的一个呃,配置,我看我们点击一下啊,可以看到将那个单步执行的效果, 这个的按钮的话呢是 step in two 的一个按钮,点击一下的话呢就会进入到当前我们这个说只是函数的函数体内来进行执行,这个按钮的话呢是单目退出按,就是退出到我们当前的这个函数的执行,进入到上一集的函数的 里面来进行执行,我们可以看到已经退出到 g d 一或 led 引力的这样的一个函数进入到的这个慢函数里面来进行执行啊,这就是单步退出的这样的一个效果,这是下一个语句的这样的一个执行,另外一个的话呢,就是执行到光标的配置 那个按钮,我们可以在这个地方打一个光标,打光标之后我们点击一下这个按钮,哎,他就会执行到当前的这个语句,这就是这个按钮的一个功能,还有个的话呢,这个就是勾,勾的话呢,就是代码全速运行,这个按钮我们点击一下,点击一下全速运行的话呢,我们可以看到当前的话,你看不到 我们的这一个只是当前代码执行的位置啊,因为代码在全速的运行另外一个位置的话呢,按钮的话,还有另外可以看到这些按钮都变成灰色的,已经不能再点了,但是这个按钮的是可以的,就是 break, break 的话呢,就是我们可以暂停当前代码的执行, 信我们点击一下 break, ok, 我们可以看到代码执行,在这个 diy 的这个函数题里面,就是在我们可以看到当前代码所执行的位置。 break 的功能,另外一个的话呢,就是 reset 与赛的话呢,就是我们可以加代码的重新执行,开始进入到当前这个工程的第一句的语句,我们可以点击 reset, ok, 可以进入到 my half 的路口的地方。第四,加 代码呢重新执行,就是这一些调试按钮的这样的一个就是我们常用的一些调试按钮的一些功能吧,就是简单为大家介绍一下。另外的话呢,我们可以拆开介绍一下这个断点的设置,我们可以在这个当前啊有所需要设置断点的语句的左边啊,进行左击, 就设置我们对应的端点,再对这个红色的点点啊进行这个左击的话呢, ok, l 可以将对应的这个端点进行取消,就是端点的设置和取消。 ok, 下面呢为大家 介绍一下呢一些常用的一些窗口吧,然后比如我们可以点击 view 啊,选择 watch, 可以打开我们对应的窗口,那就是这个是 watch 的窗口,可以去查看一些变量等,都可以在这个 watch 窗口中进行查看。另外的话呢,我们可以点击这个 view, 还有这个 memory, 可以选择 memory 窗口,在 memory 窗口下呢,可以输入我们需要查看的任意的 flash 的地址或者 cs one 的地址啊,都是可以通过 这个 memory 窗口来进行查看当前的对应的 memory 的数据的,只是 memory 窗口的这样的一个功能。还有呢,它就是 register, register 里面的话呢,我们可以查看计算器, 另外的话呢,可以为大家介绍一下 gd 三二当前的二 r 的这个工程啊,如何查看计算器,因为从不计算器这个下达窗口的话呢,可能看不到这个对应的外设,那么我们可以就对应的外设呢来进行输入对应的外设的计算器,比如 我们可以输入 gprob ctrl 零啊,就是我们可以看到,哎,这个写 gprob 的这个计算器,我们就可以看到,输入计算器我们就可以长按查看到。然后还有的话呢,就是 iphone c 零的 ctl 零 啊,没有,那我们就可以看一下是不是相关的啊,这个也可以看到啊, iphone c 零的相关的计算器,也就是说我们要查看对应外设计算器的话呢,我们可以输入一下对应外设计算器的这样的一个名称,你就可以查看对应的这个外设计算器。 相关的名称呢,我们可以通过 gd 三 f 三零叉的用户手册来进行查看,对,就是计算器的一些创口,另外的话呢,比如还有还有这个 costelk 啊,我们可以看到这个代码执行的逻辑是由哪一个函数执行到哪一个函数题里面的都是可以继续通过这个 costelk 来进行查看。 ok r 二工程的调试的话呢,是有很多的技巧和方法的,也是需要读者呢在平时的调试过程中不断的去总结和尝试,在此呢,仅仅抛上引玉啊,为大家做一下简单的工程的下载和调试的一些介绍。 好的,今天的这个二二工程的下载调试的这样的一个介绍的话呢,就讲解到这里啊,谢谢大家。

大家好,我是正在从零开始学单片机的小白,今天给大家分享我学习 esp 三二 s 三的笔记。时钟。如果把芯片比作一个人,那时钟就是他的心跳,心跳一旦乱了,人就可能晕倒。芯片也一样,需要一个非常稳定的节奏,如果没有时钟,芯片里的数据就会乱跑, 系统直接崩溃。有了时钟,所有模块才能步调一致的工作。每来一次时钟的滴答,也就是上升眼,芯片就往前直行一步, 这个滴答就叫时钟延。所以时钟就像芯片的心脏,一直滴答滴答的跳着,我们的程序才能正常跑起来。那这个心跳到底是怎么产生的,又怎么送给芯片的各个部分呢?下期我们一起看看时钟树到底长啥样?

gd 三二 f 幺零三入门道项目开发第三十七集二、 tc 闹钟中断唤醒睡眠模式第三十七集二、 tc 闹钟中断唤醒睡眠模式 这一集我们会讲解 rtc 闹钟中断初始化函数。 rtc 闹钟中段唤醒睡眠模式代码讲解,使用福斯以奥开发版进行 rtc 闹钟中段唤醒睡眠模式实验, 户外环境监测、医用监测设备、工业现场监控设备当中有些设备是不是一时处于运行状态,是间隔一段时间工作,在这种情况下, 单边机通过睡眠模式,之后通过 itc 闹钟中断唤醒睡眠模式,可以达到间隔时间工作的目的,而且当单偏机不工作的时候进入睡眠模式,可以达到降低工号的作用。 现在开始打开 q 五工程,详细讲解 rtc 初始化函数,这是 rtc 点 c 文件夹里的 rtc 初始化函数。之前我们在讲解 rtc 闹钟中断的时候也讲过 rtc 初始化函数, 但是当时只是利用 rtc 中断进行,当达到 rtc 闹钟中断值的时候进入 rtc 闹钟中断产生中断的实验,但现在 做的实验是 rtc 闹钟中断唤醒睡眠模式,所以有些修改的地方,任行代码是把 rtc 闹钟中断设置成外部中断模式的代码, 代码含义为当发生 rtc 闹钟中断时与产生外部中断相同的效应的意思, 从而达到唤醒睡眠模式的目的。这些代码是开启 rtc 闹钟中段和设置闹钟中段优先级的程序,这是闹钟中段中段服务函数,进入中段服务函数,首先判断是否发生闹钟中段函数, 之后清除闹钟中断,中断标注位之后等待 atc 写入结束 主函数出水化函数离。首先出水化 rtc 和出水化电工号模式, 之后设置 r t c 闹钟值。设置完 r t c 闹钟值五秒之后重续会产生 r t c 闹钟中断处函数处新华的函数里,这时获取 r t c 值的函数。这行代码是当 b 一变量为八的倍数时, 重新设置 itc 值并进入睡眠模式,之后 b 一变量加一把变量值显示在 oled 屏幕里,之后延时一千毫秒。 现在开始编辑程序,把程序下载到开发版进行程序验证。 从开发版 oled 屏幕可以看出,每当八的倍数时,程序会进入睡眠模式,之后再经过五秒 程序会唤醒,说明程序正常运行。下一集我们会讲解外部中断唤醒深度睡眠模式。

基地上二 f 幺零三入门道项目开发第三十四集旋转变马器 第三十四集旋转变马器这一集我们会讲解浮思以后开发板旋转变马器电路图。旋转变马器工作原理,详细讲解旋转变马器代码。利用浮思以后开发板进行旋转变马器实验。 旋转变马器有三个操作,即左旋转、右旋转和按下。实际项目开发当中,旋转变马器一般利用在参数的设定、工作模式的切换等情景里。 单边机独处旋转编码器的本质是读取单边机 gpr 幺口的高低电瓶的变化,这 是福斯一号开发版旋转编码器的电路图。旋转编码器的第一、第四银角直接接地, 第二银角通过挑鲜帽与单边机的 pa 六银角进行连接,第三银角通过挑鲜帽与单边机的 pa 七银角进行连接,第五银角通过挑鲜帽与单边机的 pa 五银角进行连接。 因为旋转或按下旋转编码器时,翻篇机的 gpi 腰口直接接地, 所以初始化旋转编码器相关 gpio 口的时候,把 gpio 口的工作模式设置为上拉电阻输入模式。现在开始讲解旋转编码器工作原理。旋转编码器的第二 银角为确认键,相当于一个按键,第三、第五银角为旋转编码器左右旋转键。当旋转编码器的时候, 第三、第五银角各自输出脉冲信号。程序里通过判断这两组输出的脉冲信号的差别,获取到旋转变马器的右转或左转的信息,这是旋转变马器左转和右转的时候, 第三眼角合第五眼角输出的脉冲信号示意图从示意图可以看出,第三眼角和第五眼角输出的脉冲信号的波形相同,相位相差九十度。当旋转编码器向左转 按动的时候,旋转变马器第五银角的脉冲信号相对于第三银角向位前置。 当旋转编码器向右旋转的时候,旋转编码器第五银角的脉冲信号相对于第三银角向位后置。 程序里通过第三、第五银角输出的脉冲信号的相位关系,可以确定旋转偏马器是右转还是左转。 现在开始打开车舞工程,详细讲解旋转编码器程序代码。首先你可得 dh。 文件夹里红定义了旋转编码器相关 gpi 要扣以及旋转编码器相关 gpr 要口输入函数引扣的假期。文件夹里定义了两个函数,一个是旋转变马器初始化函数,另一个是读取旋转变马器函数,这是旋转变马器初始化函数。函数没有输入输出参数, 因为旋转编码器相关 gpl 口为 pa 五、 pa 六、 pa 七,所以首先开启 gpla 相关时钟。 之后这个三个输入银角的工作模式设置为上拉电阻模式,这是读取旋转编码器函数。函数无输入参数,有一个输出参数, 如果函数返回值为零,则说明没有操作旋转变化器。如果返回值为一 走,右转返回直为二走,左转返回直为三走,按下按键读取旋转灯,马器函数离。 首先判断按钮是否被死锁,这是判断旋转编码器右转或左转的代码。首先判断旋转编码器 pa 五银角电瓶为是否为低电瓶, 同时判断是否判断按钮是否解出死锁,之后延时一百微秒。把旋转编码器 pa 七银角的电瓶存放在 kt 电量里,之后延时三毫秒。在这里延时三毫秒的操作室去找操作。之后继续判断旋转编码器 pa 五银角电瓶 是否为低电瓶。如果是低电瓶,说明就是说旋转变马器正在旋转,则 继续判断旋转变马器 pa 五银角电瓶是否为低电瓶。如果是低电瓶,就是说旋转变马器正在旋转, 则继续判断 k t 变量值。如果 k t 变量值为零,则判断为右转给变量 a 负值一。如果 k t 值为一, 则判断为左转给变量 a 复制二。这是判断按键锁死的代码。首先初始判断锁死技术器,等待放下按键,同时累加 判断死锁变量 cou 和 kup 这段代码是判断按键按下的程序。首先判断旋转编码器 pa 六银角电瓶是否为低电瓶, 如果是低电瓶,延时二十毫秒。继续判断 pa 六银角是否为低电瓶,如果为低电瓶,则判断为旋转编码器被按下给边量 a 负值三。 最后返回 a 主函数初始化函数。礼上一级工程的基础上添加了初始化旋转变马器。 oled 屏幕的第一行显示 incordo testy 英文字母,之后第六行显示 量 a 的值在主函数主循环函数里。首先判断旋转编码器是否有操作,如果有操作且操作为右转,则变量 a 加一。 如果是左转,变量 a 减一。如果是按下,则变量 a 至零,而且把变量的范围一直在零到九十九之间。这张代码是把变量值显示在 oled 屏幕里的代码。 现在开始背一程序,把程序下载到开发板,进行程序验证。 开始实验之前把跳线帽连接起来,跳线帽的位置在这里, 现在开始把旋转变马器右转, 从 oled 屏幕可以看出, 数值在增加,说明程序正常运行。现在开始把旋转变马器左转, 从 oled 屏幕可以看出数值在减小,说明程序正常运行。现在按下旋转变马器, 从 oled 屏幕可以看出,变量直接变零,说明程序正常运行。现在开始主函数,主循环函数里添加五百毫秒延时函数 变异程序下载到开发版进行旋转变马器实验, 从开发板可以看出,添加五百毫秒延时函数之后,程序不能正常的运行。 为了解决这个问题,下一集会使用中弹方式读取旋转变马器纸。

上期我们分享了时钟的本质是周期性的翻转时钟。有了这期咱们分享时钟数,让我们进入到芯片里,看他怎么送到芯片的各个角落呢?这就是时钟数。芯片内部的血管网络。时钟的来源有好几个,比如外接的晶振,就像外部起搏器,频率很准。 还有芯片自带的内部震荡器,就像自带的小鼓,简单方便。有时候我们需要芯片跑得更快,比如处理大量数据,这时就会用到一个叫 p l l 锁相环的东西,它像增压泵,可以把时钟频率提高。但并不是所有地方都需要高速,比如实时时钟 r t c 模块, 它只需要很慢的速度,这时选择器 m u x 就 会把慢速引过去。如果某个外设只能用慢速, 那就要用到分频器,它像一个减速阀,把高速时钟降下来。你看时钟数就像一套血管系统, 心脏产生节奏,增压泵提速,减速阀降速。选择器决定流向,最终每个模块都能得到适合自己的时钟。那为什么要这么麻烦的降速呢?下集我们聊聊省电的秘密。

gd 三二 f 幺零三入门道项目开发第四十一集看门狗第四十一集看门狗这一期我们会讲解看门狗相关知识,讲解窗体看门狗代码讲解, 利用福斯一号开发版进行窗体开门狗实验。七 d 三二 f 幺零三系列单偏机内部有两个开门狗外设, 一个是独立看门狗,另一个是窗体看门狗。看门狗外设本质是一个递减定时器,看 开启开门狗外设之后,开门狗内部定时器抑制递减方式进行技术,当技术到发质时,会发生一个单偏机复位信号,使 单偏机进行复位,但计时器进行到发质之前,给单偏机重新加载职责,不会产生复位信号。 利用这种原理,当单偏机程序跑飞后,进入死循环时,会产生一个复位信号,使单偏机跳出这种不理想的情况。开门狗外设有两种,一个是独立开门狗,另一个是窗体开门狗。 这一集首先讲解创体看门狗实验,这是独立看门狗工作原理图。独立看门狗是由内部低速精振,经过预焚聘之后,给独立看门狗提供时钟。当开启独立看门狗外设之后,独立看 门狗内部十二位递减计数器开始工作,计数器一直递减,当递减到零,独立开门搞外设会产生一个复位信号,使单偏机进行复位,但计数器计数到零之前, 给计数器进行重新复职,这样又重新开始计时,却不能计数到零, 所以不会产生复位信号。在这里给激素器进行重新复制的操作,叫做喂狗,但程序跑挥霍进入死循环时,不能及时喂狗, 所以独立开门狗会产生复位型号,爬到帮程序跑飞后进入死循环时,起到重新运行程序的目的。这是创 体看门狗工作原理图。窗体看门狗工作原理与独立看门狗工作原理非常类似,抖史递减计算器 切技术到某一发支时产生一个复位信号。窗体看门狗是有 pclk 一时钟,经过预防兵器给窗体看门狗外哨时钟, 所以从时钟精度来看,窗体开门狗比独立开门狗时钟精度更高。窗体开门狗当技术到零 s 三 f 就会产生一个复位信号, 并且当计数器计数到零 s 三一时,会产生窗体开蒙稿中断。给电视器进行喂鸽操作时,必须在 t 一到 t 二之间进行未搞操作,当零到 t 一之间进行未搞操作,当天机会进行复位,所以窗体看门狗更适合监看某一段程序的具体运行状态。 独立开门狗更适合监看程序跑废后,程序进入死循环。窗体开门口属性有散稿、计计数器初始值、窗口值、遇分频系数,这三个系数在程序里可以进行设置。 现在开始讲解开门狗时间进行详细讲解。 pclk 一时钟通过预防拼气之后给创体开门狗提供时钟,经过预防拼气之后,频率变为 一点六四七九 k 赫兹,从这个频率可以计算出周期为零点六零六八毫秒。这个是计算 t 一和 t 二时间的公式, t 一为二十八点五毫秒, t 二为三十八点九毫秒。从这个数值可以看出,当初始化窗体看门狗之后, t 一到 t 二之间内进行 未搞操作,才可以在这个时间段之前或之后进行未搞操作都会产生复位信号。 现在开始打开 q 五工程详细讲解创提开门狗程序,在上一级工程的基础上,在 cc 层文件夹里添加了 wdt 文件夹, wdt 文件夹里的 w 福利滴滴答期文件夹里编写了两个函数,第一个函数是窗体看门狗初始画函数,第二个函数为窗体看门狗中断服务函数。窗体看门狗初始画函数。第一行代码含义为看 开启框体看门狗外设时钟。这行代码的含义为,计数器初始值设置为一百二十七, 窗口值设置为八十,遇分频系数设置为八。这单代码是清除开门狗中弹标志位,这单代码是开启和使能窗体开门狗,并设置开门狗中弹优先级主函数。初始化函数里编写了窗 体开门稿,初始化函数延时二十九毫秒,之后重聚会进入未搞操作。从上面的分 可以看出,初始化仓体看门狗之后只能在二十八点五毫秒到三十八点九毫秒之间进行未搞操作,不会产生复位信号。 当旋转变马器向右旋转时, ins mark 值至一会直行延时一千毫秒,不能及时喂狗,会产生复位现象。现在开始编辑程序,把程序下载到开发版进行程序验证。 从开发板可以看出,程序不进行复位,说明程序正常运行。现在把旋转 转变马器右转观察 oled 屏幕, 从 oled 屏幕可以看出程序会复位,说明程序正常运行。 现在开始把延时函数的值修改为二十毫秒,验证窗口外进行未搞操作时是否程序正常运行? 从 oled 屏幕可以看出,程序一直复位,说明程序正常运行。下一集我们会讲解独立看门稿。