找回密码
 立即注册

只需一步,快速开始

搜索

【复旦微FM33LG0X试用】点个灯

0
回复
1910
查看
[复制链接]

166

主题

343

帖子

3076

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3076
QQ
2022-1-7 17:00:06 显示全部楼层 |阅读模式
【复旦微FM33LG0X试用】点个灯


原帖地址:【复旦微FM33LG0X试用】点个灯 - ARM技术论坛-ARM嵌入式论坛-人气最火爆ARM学习论坛 - 21ic电子技术开发论坛

有幸抽中盲盒,获得复旦微FM33LGX开发板

手里现在只有stlinkv2 10pin的,还是山寨的,连上开发板后,设置好参数后开始测试
发现stlink可以download,也可以仿真,但是download后板子不能自己复位
只能通过仿真再退出省略手动复位,或者是我没有设置对?

下面进正题
点个灯
LED1——>PC1——>GPT1_CH2
LED1——>PC0——>GPT1_CH1
看开发板原理图发现有两颗灯连接到通用定时器1上,那就做成呼吸灯吧

首先初始化IO
  1. FL_GPTIM_InitTypeDef        timInit;

  2.     FL_GPTIM_OC_InitTypeDef     timOCInit;

  3.     FL_GPIO_InitTypeDef         gpioInit = {0};



  4.     gpioInit.pin = FL_GPIO_PIN_0|FL_GPIO_PIN_1;//PC0,PC1

  5.     gpioInit.mode = FL_GPIO_MODE_DIGITAL;

  6.     gpioInit.outputType = FL_GPIO_OUTPUT_PUSHPULL;

  7.     gpioInit.pull = FL_DISABLE;

  8.     gpioInit.remapPin = FL_DISABLE;

  9.     FL_GPIO_Init(GPIOC, &gpioInit);
复制代码


然后配置通用定时器


  1. timInit.prescaler             = 800 - 1;                     // 分频系数8000

  2.     timInit.counterMode           = FL_GPTIM_COUNTER_DIR_UP;   // 向上计数

  3.     timInit.autoReload            = 200 - 1;                          // 自动重装载值1000

  4.     timInit.clockDivision         = FL_GPTIM_CLK_DIVISION_DIV1;  // 死区和滤波分频

  5.     timInit.autoReloadState       = FL_ENABLE;                       // 预装载preload使能

  6.     FL_GPTIM_Init(GPTIM1, &timInit);
复制代码
然后配置相应输出通道
  1. timOCInit.OCMode       = FL_GPTIM_OC_MODE_PWM1;                  // 输出比较模式PWM1

  2.     timOCInit.OCETRFStatus = FL_DISABLE;                                // OC1REF不受ETR影响

  3.     timOCInit.OCFastMode   = FL_DISABLE;                                // 关闭快速使能

  4.     timOCInit.compareValue = 500;                                    // 比较值500

  5.     timOCInit.OCPolarity   = FL_GPTIM_OC_POLARITY_NORMAL;            // OC正常输出

  6.     timOCInit.OCPreload    = FL_DISABLE;                                // OC preload 无效

  7.     FL_GPTIM_OC_Init(GPTIM1,         FL_GPTIM_CHANNEL_1, &timOCInit);//CH1

  8.                 FL_GPTIM_OC_Init(GPTIM1,        FL_GPTIM_CHANNEL_2, &timOCInit);//CH2
复制代码
最后进行PWM的调整实现呼吸效果
  1. if(dir)ledpwm++;

  2.                         else ledpwm--;
复制代码
演示效果
哈哈哈哈.gif

完整代码:
GPTIM PWM呼吸灯.rar (6.61 MB, 下载次数: 219)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

返回顶部