0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【GD32F470紫藤派开发板使用手册】第六讲 TIMER_3路PWM输出实验

聚沃科技 2024-05-08 09:20 次阅读
wKgaomYwSqiAY_PQAAnl063z3JE116.png

6.1实验内容

通过本实验主要学习以下内容:

  • TIMER PWM输出原理
  • TIMER 定时中断

6.2实验原理

本例程中,采用TIMER5进行定时中断,在中断中改变TIMER0前三个通道的占空比,使用示波器或逻辑分析仪,可以测量TIMER0前三个通道PA8、PA9和PA10的波形。也可以通过飞线的方式将三个IO口分别接到红绿蓝三种不同颜色灯珠上,实现RGB彩灯的效果。

6.3硬件设计

TIMER0的前三个通道分别为PA8、PA9和PA10,读者直接对开发板上引出的排针进行测试即可。

wKgZomY60oGANyKQAAFrLJs6s4Y480.png

6.4代码解析

本例程使用了两个TIMER,其中TIMER5用来产生30ms的周期性中断,在TIMER5的中断中,对TIMER0的三个通道占空比进行调整,从而实现占空比可变的效果。

6.4.1主函数代码解析

主函数代码如下所示,主要包括串口初始化、LED初始化、RGB灯珠初始化(即timer0的三个通道初始化)、timer驱动初始化(该timer用于调整RGB灯珠PWM驱动时间)。

C++
int main(void)
{
//延时和公共驱动部分初始化
driver_init();
//打印串口初始化
bsp_uart_init(&BOARD_UART);
//初始化LED组
bsp_led_group_init();
bsp_led_on(&LED2);
bsp_led_off(&LED1);
//TIMER0设置1M频率,重载值设置100,PWM频率为10K
bsp_rgb_init(1000000,100);//

//注册rgb_switch函数到timer定时中断的回调函数
TIMER_INT.timer_updata_callback=rgb_switch;

//初始化定时器,默认计数器频率100K,周期值3000,中断频率100K/3000= 33HZ(30ms)
bsp_timer_init(100000,3000);

printf_log("\r\n RGB breathing lamp\r\n");

while(1)
{

}
}

6.4.2RGB灯珠初始化函数解析

RGB灯珠初始化函数如下,在此定义了RGB_TIMER_R、RGB_TIMER_G、RGB_TIMER_B三个灯的控制结构体,并通过timer驱动进行配置。

6.4.3基础定时器初始化及中断处理函数

基础定时器初始化配置代码如下,在此用一个定时器TIMER5,并使能了其溢出中断。该定时器用于控制RGB PWM输出时间。

C
void bsp_timer_init(uint32_t counter_frequency,uint16_t period)
{
driver_timer_base_int_init(&TIMER_INT,counter_frequency,period);
nvic_irq_enable(TIMER5_DAC_IRQn,0,0);
}

其中断回调函数如下,通过该函数定时调整RGB三路PWM的占空比。

6.5实验结果

将本例程代码下载到紫藤派开发板中,使用示波器测量PA8、PA9、PA10上,可以看大三个通道占空比的变化。

教程GD32 MCU方案商聚沃科技原创发布,了解更多GD32 MCU教程,关注聚沃科技官网

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PWM
    PWM
    +关注

    关注

    114

    文章

    5186

    浏览量

    213895
  • RGB
    RGB
    +关注

    关注

    4

    文章

    798

    浏览量

    58496
  • 开发板
    +关注

    关注

    25

    文章

    5046

    浏览量

    97434
  • Timer
    +关注

    关注

    1

    文章

    64

    浏览量

    12786
  • GD32
    +关注

    关注

    7

    文章

    403

    浏览量

    24346
收藏 人收藏

    评论

    相关推荐

    GD32F470紫藤开发板使用手册】第九 USART-printf打印实验

    通过本实验主要学习以下内容: 串口简介 GD32F470串口工作原理 使用printf打印信息
    的头像 发表于 05-13 10:14 1735次阅读
    【<b class='flag-5'>GD32F470</b><b class='flag-5'>紫藤</b><b class='flag-5'>派</b><b class='flag-5'>开发板</b><b class='flag-5'>使用手册</b>】第九<b class='flag-5'>讲</b>  USART-printf打印<b class='flag-5'>实验</b>

    GD32F470紫藤开发板使用手册】第十一讲 SPI-SPI NOR FLASH读写实验

    通过本实验主要学习以下内容: •SPI简介 •GD32F470 SPI简介 •SPI NOR FLASH——GD25Q32ESIGR简介 •使用GD32F470 SPI接口实现对
    的头像 发表于 05-17 09:57 1790次阅读
    【<b class='flag-5'>GD32F470</b><b class='flag-5'>紫藤</b><b class='flag-5'>派</b><b class='flag-5'>开发板</b><b class='flag-5'>使用手册</b>】第十一讲 SPI-SPI NOR FLASH读写<b class='flag-5'>实验</b>

    GD32-Colibri-F207实验TIMER3_Input

    GD32-Colibri-F207实验TIMER3_InputCapture,很好的GD32资料,快来学习吧。
    发表于 04-21 17:40 15次下载

    GD32-Colibri-F207实验TIMER3_PWMIn

    GD32-Colibri-F207实验TIMER3_PWMInput,很好的GD32资料,快来学习吧。
    发表于 04-21 17:40 5次下载

    YL-51开发板使用手册

    YL-51开发板使用手册,YL-51开发板使用手册YL-51开发板使用手册YL-51
    发表于 05-10 16:31 21次下载

    51开发板使用手册

    51开发板使用手册,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-23 15:45 11次下载

    KC705开发板英文使用手册

    KC705开发板英文使用手册
    发表于 11-01 10:19 5次下载

    iTOP-3399开发板使用手册大更新

    iTOP-3399开发板使用手册大更新
    的头像 发表于 12-10 15:46 1368次阅读
    iTOP-3399<b class='flag-5'>开发板</b><b class='flag-5'>使用手册</b>大更新

    APT32F102 开发板使用手册

    电子发烧友网站提供《APT32F102 开发板使用手册.pdf》资料免费下载
    发表于 04-16 09:07 0次下载

    GD32F470紫藤开发板使用手册】第二 GPIO-按键查询实验

    通过本实验主要学习以下内容: GPIO输入功能原理; 按键查询输入检测原理;
    的头像 发表于 04-30 11:39 709次阅读
    【<b class='flag-5'>GD32F470</b><b class='flag-5'>紫藤</b><b class='flag-5'>派</b><b class='flag-5'>开发板</b><b class='flag-5'>使用手册</b>】第二<b class='flag-5'>讲</b> GPIO-按键查询<b class='flag-5'>实验</b>

    GD32F470紫藤开发板使用手册】第五 PMU-低功耗实验

    通过本实验主要学习以下内容: PMU原理; 低功耗的进入以及退出操作
    的头像 发表于 05-07 09:29 681次阅读
    【<b class='flag-5'>GD32F470</b><b class='flag-5'>紫藤</b><b class='flag-5'>派</b><b class='flag-5'>开发板</b><b class='flag-5'>使用手册</b>】第五<b class='flag-5'>讲</b>  PMU-低功耗<b class='flag-5'>实验</b>

    GD32H757Z海棠开发板使用手册第六 TIMER_3PWM输出实验

    通过本实验主要学习以下内容: TIMER PWM输出原理 TIMER 定时中断
    的头像 发表于 05-09 09:36 654次阅读
    【<b class='flag-5'>GD</b>32H757Z海棠<b class='flag-5'>派</b><b class='flag-5'>开发板</b><b class='flag-5'>使用手册</b>】<b class='flag-5'>第六</b><b class='flag-5'>讲</b> <b class='flag-5'>TIMER_3</b><b class='flag-5'>路</b><b class='flag-5'>PWM</b><b class='flag-5'>输出</b><b class='flag-5'>实验</b>

    GD32F470紫藤开发板使用手册】第八 ADC-规则组多通道采样实验

    通过本实验主要学习以下内容: •ADC的简介 •GD32F470 ADC工作原理 •DMA原理 •规则组多通道循环采样
    的头像 发表于 05-12 10:00 769次阅读
    【<b class='flag-5'>GD32F470</b><b class='flag-5'>紫藤</b><b class='flag-5'>派</b><b class='flag-5'>开发板</b><b class='flag-5'>使用手册</b>】第八<b class='flag-5'>讲</b> ADC-规则组多通道采样<b class='flag-5'>实验</b>

    GD32F470紫藤开发板使用手册】第十三讲 USB_虚拟键盘实验

    通过本实验主要学习以下内容: •USB协议基本原理 •GD32F4xx USBFS的使用 •虚拟键盘的协议原理及使用
    的头像 发表于 05-19 09:59 1137次阅读
    【<b class='flag-5'>GD32F470</b><b class='flag-5'>紫藤</b><b class='flag-5'>派</b><b class='flag-5'>开发板</b><b class='flag-5'>使用手册</b>】第十三讲 USB_虚拟键盘<b class='flag-5'>实验</b>

    GD32F303红枫开发板使用手册】第二十 SPI-SPI NAND FLASH读写实验

    通过本实验主要学习以下内容: •SPI通信协议,参考19.2.1东方红开发板使用手册GD32F303 SPI操作方式,参考19.2.2东方红
    的头像 发表于 06-20 09:50 901次阅读
    【<b class='flag-5'>GD32F</b>303红枫<b class='flag-5'>派</b><b class='flag-5'>开发板</b><b class='flag-5'>使用手册</b>】第二十<b class='flag-5'>讲</b> SPI-SPI NAND FLASH读写<b class='flag-5'>实验</b>