打开 d、 m 三、二、 q 单图形化编程工具,选择使用的单片机型号 p 至外部高速时中原, 通过时钟数配置外设时钟, 根据电路图配置单片机引缴, 将银角 pc 领到 pc 机,设置为输出模式。 ppl 参数设置 点路途中 a、 d 接了上拉电阻, 因此 g、 e、 p、 l 设置为默认输出。高电瓶 输入工程名选择保存路径以及 a。 将外设初始化为独立的 c 和 each 文件,生成工程代码。打开工程,进入待 k、 d 中编写程序, 自动生成的外设初始化文件中的代码 主函数 y 循环中编写程序, 编写流水灯程序, 间隔二百毫秒,依次翻转 gpo 输出电瓶, 编译程序, 下载程序到单键机 实验效果演示。
粉丝63获赞416

首先创建一个 app 工程文件,选择对应的芯片,这里选用 s t, m 三二 c 八 t 六 r c c。 选取外部时钟,选择 debug, 如果不选不能烧路和调试,选择时钟远, 将外部高速时钟配置为晶体陶瓷斜震器。选择串口,设置里面的参数,这里配置串口。三, 选择自己使用的银角进行配置,这里配置成 a o 输出,我们可以设置 g, p, i, o 的一些参数。 注,设置系统时钟, 填写生成的工程信息、工程名称、存放位置等 id, 选择自己常开发的平台,设置一些工程配置。 生成代码成功的话会出现提示。我们进入工程可以看到我们配置的内容代码都已经帮我们生成,我们可以在此基础上进行我们的后续开发了。更多精彩内容,欢迎持续关注我。


打开 d m 三二 q 单图形化编程工具,选择使用的单片机型号 p 至外部高速时中原, 通过时钟数配置外设时钟, 使能 user 日益不通信,对应引脚会自动开启。设置 换口的波特率,数据长度较严位停止为等参数。输入工程名,选择保存路径意见, 将外设初始化为独立的 c 和 h 文件,生成工程代码。 打开工程,进入干 k e d 中编写程序 s e m 三二 q galact, 自动生成外设初始化代码。 主函数 y 循环中编写程序使用库函数,从串口输出字符, 使用 print 函数时发现报错, 此时需要对 perin 函数进行重定项 pre n, 将函数重定向完成后报错消失。 设置二千毫秒一次循环 编译程序, 下载程序到单片机 实验效果演示。

我们来看一下利用这个 sd m 三二 q 八 m x 这个代码修声器啊啊,我们用它来生成 p w m 波形来控制电机转动 啊,首先呢这个软件啊,大家安装自行安装啊,安装之后呢啊,我们一开始呢是从这个 mcu 开始我们的工程啊,因为我们不是用的他的这个 s c 报的啊, 我们就点这个就可以了啊,因为我这个工程已经建好了啊,所以呢这个建工程的过程我就不再演示了。嗯,当然呢,这个也比较简单啊,点进去之后呢,大家就可以这个啊,根据你使用的 mcu 的型号去选啊,就可以了啊,命名好工程的这个名字啊,他就可以了啊,在这里呢我们就不演示建的过程了,这是我建好的工程啊, 直接在做配置啊,首先呢你用定时器的呃时候,其实你在使用所有的功能的时候啊,都应该先把啊时钟配置好啊,比方说我们这里的二 cc 啊,我们选择的是 呃,叫 h s e, 叫高速外部适中啊,因为我们的这个核心板上啊,有一个精震啊,我们现在用它是做这个时钟源啊啊,这个选好了以后呢 啊,这里我们选的 crystal, 对吧,这个精镇啊,选好了以后呢,我们在这个 cloc configuration 里面始终数的配置里面,我们在这里选 hse 啊,大家看外边是接了一个八兆的竞争,对吧?过来之后呢,在这里啊,我们先这是分频的,我们先不分频就八兆进来啊,我们就用它,那么在这里呢倍频,九倍倍频啊,九倍之后 八乘九就剩七十二了,对不对啊,七十二过来之后我们这里也不分平啊,也是让他七十二,因为我们就会选用最大的时钟频率就可以了啊,在这里呢,大家要注意,这里呢,你至少要量二分频,为什么呢?你选一的话 啊,这里出问题了啊,最高是支持三十六,对不对啊?所以呢,我们这里这个二分频,二分频之后,大家就看啊,每一个外设都有了自己的时钟远或者时钟频率了啊,那么我们的定时器大家看啊, 这个 a p p 一 time 啊,挂在 a p p 一总线上的定时器啊,始终频率是七十二对吧?挂在 a p p 二总线上的这个定时器,它的始终源也是七十二兆啊,相当于我们所有的定时器的 始终。现在都是七十二调啊,这里就配置好了,对不对?那么配置好了以后,我们来看我们的 timer 啊,在这里, 那就我我是之前设置过了啊,比方说我们用的是 tam 二和 tam 三啊,对应的银角呢,就是 time 二呢,呃,通道一和通道二就是 p a 零和 p e 一,我们用的啊, time 三呢,我们用的是,呃, p b 零和 p b 一啊, p b 零和 p b 一。那么配置好以后, 大家看,我们在这里用的是比较简单的啊,一个是通道一的 p w m 生成功能,还有一个呢是二的 p w m 生成功能, 这是选好了啊,这是 tom 二的,这个选了两个通道用的啊,然后呢,主最主要的是下边,通过下边这些参数的设置来设置他的波形,就是 p w 波形的周期啊,以及初始化的占空比啊。呃, 主要涉及到的参数呢,一个是这个预分频啊,就不是 c 了啊,这里呢我选了七十一啊,实际上呢,呃,他算的时候是按照七十一加一就是七十二去算的啊,然后这里大家看这个啊,叫 counterparia 的啊,就是,呃,是决定他的 呃周期的啊,是决定它是周期的。我升了九十九啊,实际上零到九十九是一百,对不对啊?那么这样生成波形的周期是多少呢?我们的时钟是七十二兆,等一下我们算一下啊, 那记住我们的时钟呢,就是七十二兆,我们刚才设置好的,对吧,七十二乘以十六次方啊,赫兹对吧,然后呢,除以预分频, 我们设置是七十一,当然你这个可以设置成零,不分屏也没关系啊,加一对吧,再除以谁呢?再除以我们那个 p r 的 counter, 那就是九十九,加一 对吧,谁让你算下来呢,正好是多少?七十二兆除以七十二是一兆,一兆除一百呢,正好是一万,对吧?十 k 啊,这样呢,我们就得到一个十 k 赫兹 频率的 p w m 波形,那就是一秒钟呢,他有一万个周期在这个波形里,对吧?啊这是算他的 通过设置的三个参数啊,来设置我们 pm 波形的频率啊。其实频率和周期其实是一体两面嘛,对吧?不为例子, 互为倒数,对不对啊?然后呢,还下面还有一个呢,这里我们可以用 plume mode 啊,模式一。然后呢,这里啊是设置它的 pose 啊,设置它的叫占空。呃,可以说是设置占空笔吧,也就设置它初始化的占空笔啊,初始化的占空笔啊,比方说我们现在最最大是九十九嘛,是吧?最大是一九十九,那你这里你可以给它设置成啊三十啊,或者二十 啊,都可以,对吧?其他的呢,我们不用动啊,其他的不用动,那这样呢,他有两个通道,你比方我们这里设置三十啊,这里设置个零啊,那么他就会啊,因为有一个是低电瓶啊,有一个是有波形啊,这样呢,他的轮子就会转动起来啊,就会转动起来啊, 如果你想让它反转,那这个式的成语,这个式的成啊,一定的数值,它有波形,那就是反过来反方向的转啊,当然这个呢,我们先实现它动起来啊,至于让它反方向的转,正方向的转 啊,或者让他转的速度是多少,我们后面还要写一个函数来实现这个功能。这里呢,我们先给他给定一个占空笔啊,让他转动, 这是 tom 二 tom 三呢,其实道理是一样的啊,你比方我们 tom 三选用的是传到三啊,传到四啊,其他的设置都是一模一样,因为我们两路呃, pwm 啊,一定是让他要同一个频率啊,都是十 k, 对吧啊,当然你如果需要一 k 的,你这里可以设置成一千, 对吧,你需要这个更大的啊,对,需需要 e k 的,你再设成一九百九十九啊,你需要更大的,那你就改 这两这三个值就可以了。那当然时钟定了之后一般不会改啊,主要是改这两个值啊,通过我们的这个计算方法来算就可以了啊。那么好了,等了这两个设置完,呃,同样呢,这里啊,你也可以设置成啊,不要说三十二十啊,这个没有问题。 那么设置好了以后啊,我们使弄好了啊,这个定位界设置好了,那么你就点这个啊,当然这个 project manager 大家不要忘了啊,起工程的名字,工程存储的地方,对吧?啊,还有一个需要注意的呢,就是,呃,你是用的哪一个 编译 i d e 啊,你比方说我这里啊,我用 client 啊,那就要生成 s m 三 q 八 i d e 的工程啊,你会?当然你要用这个呃 q 八 i d e, 那肯定 也要生成这个工程,那你如果是用的 q, 那你就选这个 m d k r, 对吧?啊,嗯,根据你用的这个 i d e 来选择这个工程的类型啊,图称啊,这里呢,我们啊用用 cloud 演示的话,我们就选这个啊,其他呢,你可以先不动啊,我们点 generate code, 这样呢,代码就生成了啊, 大家要注意啊,这个 q 八 m x 它生成的是底层驱动啊,它并不是万能的,我这个所有的功能通过它都能生成啊,不是,它只是功能的驱动可以生成啊, 生成以后呢,我们这里工程呢,其实就自动更更新过来了啊,看看,这是闷函数对吧?啊,呃,生成以后啊,这些都是呃系统 生成的代码啊,初始化的代码,他们要注意啊,如果我们想写用户代码,我的建议呢?也不是我的建议了,就是根据我们这个 呃代码生成器的特点啊,把我们的用户代码一定要写在这个 user code begin 和 user code end 之间, 写在这里有什么好处呢?写在这里呢,如果说啊,我想去改动,比方说我本来就用了 tom 二,对不对?我不想用 tom 二了,我想改成 tom 三,对吧,我在这里设置好,设置好以后呢, 我点生成我们的用户代码是不会受影响的,大家看这这个四行代码是我昨天晚上写的啊,实际上我点刚才点生成代码之后,这里他是不影响的啊,一点都不影响,所以你的用户代码一定要写在优字扣的笔定和优字扣的摁的之间啊,这样呢,代码生成记生成的代码不会把你的代码覆盖掉, 那你如果写在这里,那就你比如说你写在这个引力什么什么,这这种地方他有可能给你覆盖掉了啊,你的用户代码就没了啊,所以一定要写在优字扣的比跟 n 的之间啊, 那么这四句是干啥的呢?大家要注意啊,前面数字化我们都有了,是不是?那么实际上数字化之后呢,这个 dwm 这个功能啊,他并没有给打开啊,所以呢,我们要通过自己啊携带码把它打开啊,你大家看见 star 的函数对不对啊?然后用的是他一门挤,用的是他的哪个通道,其实很简单啊,很简单打开就可以了啊,相当于我程序进来没函数, 对吧啊?初始化然后打开,那这个时候就其实就应该有波形了啊,我们一会通过试播器可以看一下啊,然后下面呢就是编译下载了啊,这个不管 用的哪个 id 其实都差不多啊,无非就是编译,然后呢下载,对吧,当然我的下载可能不太一样啊,这个你们的下载在 q 里面不是这个样子啊。呃,编译和下载就可以了啊,那我们把它下载一下。 还有一个问题啊,就是大家看一下啊,这个初始化,我们看一下刚才播的初始化啊,别让我们看随便看一个 number 二的啊, 转到定义啊,这是代码生成器生成的,对不对啊?所以你看我们设置的啊 pm 二定时器,然后预分频七十一,对吧,这个最大周期呢是九十九,对吧?然后呢我们设的一个占空比是三十,对吧?啊然后呢?这个是零 啊,还有一个是零零的啊,对吧?这个 power 四是零,对吧?所以说呢啊我们只要在图形界面中设置好了它生成的代码一定是按照图形界面来设置的,对吧?这是 thome 三对吧?一样的啊一样的啊。好了我们下面呢来给它下载一下啊。 嗯大家可以看一下我们程序下载以后啊。嗯,我们用试播器啊,试播器的这个,呃接地线,这个呢,我们接到我们的 信号输出引脚声,嗯,其实就可以看见你生成的波形 啊,我们可以看一下它的这个纸啊啊我们设置的是啊十 k 赫兹 啊,频率是十 k 合资啊。我们设置的占空比是百分之三十吗?这个丢替呢是百分之七十现在对吧?就是百分之七十空,百分之三十是这个,呃有这个波形的啊啊可以看出来啊,就是通过这个波形呢, 我们是因为是一个定时器里面两个通道,对吧?其中一个通道有波形,另一个通道呢输出低,这样子呢,呃电机呢就会向一个方向转动,对吧?啊?如果反过来啊一个通道呢是呃低,另一个通道有波形,那样的方向就会转过来,对吧?啊就这么一个 原理啊,这程序下载以后啊,嗯下载到我们的这个核心版上来了,对吧?那么我们就要做的就是连接线路啊,我们之前呢也跟大家说过了,我们这里是呃,电源 两根信号线,然后呢最最右侧的这个是 d, 对吧?然后呢这四根线我们要连接到我们的电机驱动板上, 这里啊,同样的道理呢,最上面它是电源,最下面是 d, 当中是两根信号线啊,电源和 d 是千万不能接反的啊。呃,两当中两根信号线接反了问题不大,无非就是转的方向啊,会出现这个 和你预想的不一样啊,这个时候调整一下就可以了啊,但是电源地是千万不能接反的啊,所以呢这个我们接好了,然后呢我们的电机啊,我这里用了一个电机做实验啊, 我们电机连线啊,接到我们的这个这个驱动板上来,然后呢这个呢是我们的驱动板的电源接入啊,大家可以看,我做了一个这个 啊,保险丝做了一个开关,对吧?这个做一个简单的保护,然后呢这个电源的接头,我们接到我们的电池上来, 然后呢把我们的这个电池接到我们的 转接板上啊,这样呢就完成了一个连接,对吧?这个时候呢,我们开开,打开我们的 转接板电源,然后呢我们再打开我们的 电机驱动版的开关啊,所以大家看啊,我们现在的速度呢是占空比吧,也就是说我们总的速度是九十九,对吧?我们设置的占空比是三十,对吧?这是三十的速度,那当然呢,你接两个电机,那就另一个电机就接在这一块啊,我们同侧电机用一路信号去控制就可以了, 嗯,接法呢,就是啊,不复杂,当然呢,我们还有一,还有还有一路信号,对吧?可以控制另一侧的啊?两个电机轮子啊?

复制一份代码, 在这里,我们在这里可以更改单面积 的型号,比如说现在是 f 一零三二七,我们可以改成 f 一零三二比,然后点确定, 那如果是在 mx 软件里面的怎么改? 这个工厂的芯片是 f 一零三二七 这个芯片现在我们想要更改的了芯片型号,我们可以以记事本或者其他的 编辑软件打开这个 ioc 后缀的软件, 我们在这里可以看到他的芯片信号,我们查查找, 这是咳嗽家爱情茶茶枣, 这里全部替换, 那这里就已经替换掉了,还没有保存,然后再打开看一下, 这里就已经改过来了。

如何快速创建 stm 三十二工程?我这里使用的是 stm 三十二 qbm x, 这是一个可视化 stm 三十二代码生成软件。下面由我演示下如何创建工程。 首先选择好自己需要的芯片型号,不同的芯片会有不同配置下, 为了方便调试,我这里开启 swd 调试功能,并且启用了外部始终。接着是设置单片机工作频率, 这里只需要输入想要的频率,然后点击回车就可以自动计算出分频参数,这个功能太方便了。最后一步是给工程取一个高端霸气的名字,我是使用 carry 开发,所以开发环境选择 m d k。 最后点击右上角的生成 按钮,生成工程代码,编译并运行下代码,测试下是否正常。对了,如果想看生成代码的大小,还需要指定一下 map 文件的存储位置,然后再重新编译一下项目,双击工程名字就可以看到了。 为了跟踪代码变化,我会用 d 来管理代码,不过项目中每次编译都会生成很多临时文件,需要把这些文件忽视名单中,这样即使这些文件变化也不会被跟踪。然后对代码进行第一次提交。 然后我们重新打开 q b m x, 添加一些新配置,重新生成一下代码试试效果。可以看到给已经把被修改过的代码标记 出来,但是 visco 无法显示中文,因为 carry 是使用 g b k 编码,而 visco 的是 u t f 八,所以这里要强制指定 g b k, 所以可以像我这样创建配置文件。 visco 的打开就会默认使用 g b k 编码,打开 中文就不会再乱码了, bt 也把对应的修改内容高亮显示,可以放心大胆的修改代码了。好了,就说到这里,要是觉得本视频对你有用,记得给我点个关注。