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

  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不停的由暗变亮,然后再由亮变暗。

 

代码包下载:

链接:https://pan.baidu.com/s/1udZ4AbVsilh6m751icrPMA

提取码:q54n

 

原文地址:https://www.cnblogs.com/xiaomagee/p/12803375.html