【STM32F4】【银杏科技ARM+FPGA】iCore3移植RT-Thread--PWM呼吸灯

喜欢而已 提交于 2020-04-30 13:45:56

  PWM(Pulse Width Modulation , 脉冲宽度调制) 是一种对模拟信号电平进行数字编码的方法,通过不同频率的

脉冲使用方波的占空比用来对一个具体模拟信号的电平进行编码,使输出端得到一系列幅值相等的脉冲,用这些脉冲来

代替所需要波形的设备。

一、配置TIM的相关GPIO,选择时钟源

1.1 我们打开../BSP/STM32/STM32F407_gingko_iCore3/board/CubeMX_Config来进行定时器的配置,我们

以TIM8通道1为例,注意这里仍然是只配置IO,其他参数不予更改。配置完成后点击CREATE CODE。

1.2 CubeMX生成工程后,只保留红色方框内的文件,其他的两个文件夹可以删除掉。

1.3 复制刚生成的src文件夹main.c文件夹中的函数SystemClock_Config(void)到board.c。这里内核初始化时要

调用该函数进行时钟配置。

二、修改Kconfig文件,增加menuconfig菜单中的PWM选项

三、添加PWMn_CONFIG定义

添加PWM软件包

打开Env工具,使用menuconfig配置工程,路径为:RT-Thread online packages--->miscellaneous

packages---> samples : kernel and components samples---> a peripheral_samples package for

rt-thread--->pwm devcie。

再在Env中输入命令:pkgs --update运行,出现Operation competed successfully更新成功。

我们会在文件夹中看到packages文件夹。

在Env中输入命令:scons --target=mdk5生成工程,我们会发现在工程中添加了pwm_led_sample.c文件。

我们对main.c中先将LED屏蔽掉,再对pwm_led_sample.c中做修改,我们点击保存退出(此时编译会出错,因为我

们还没配置结束)。

五、使能PWM通道

通过Env工具使能,选项是已经有个自己选择的通道,因为Kconfig按照一定的格式,menuconfig可以识别出Kconfig

的书写的格式,所以选项中已经有个自己选择的通道。

再次输入:scons --target=mdk5生成工程。

六、实验现象

打开工程进行编译并下载程序,在终端输入list_devcie命令,可以看到PWM8设备已经成功添加了,如图所示:

在终端输入help命令看到pwm_led_sample命令已经成功导出:

输入pwm_led_sample命令,即可运行PWM测试程序,此时红色LED不停的由暗变亮,然后再由亮变暗。

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!