|
【复旦微FM33LG0X试用】点个灯
原帖地址:【复旦微FM33LG0X试用】点个灯 - ARM技术论坛-ARM嵌入式论坛-人气最火爆ARM学习论坛 - 21ic电子技术开发论坛
有幸抽中盲盒,获得复旦微FM33LGX开发板
手里现在只有stlinkv2 10pin的,还是山寨的,连上开发板后,设置好参数后开始测试
发现stlink可以download,也可以仿真,但是download后板子不能自己复位
只能通过仿真再退出省略手动复位,或者是我没有设置对?
下面进正题
点个灯
LED1——>PC1——>GPT1_CH2
LED1——>PC0——>GPT1_CH1
看开发板原理图发现有两颗灯连接到通用定时器1上,那就做成呼吸灯吧
首先初始化IO
- FL_GPTIM_InitTypeDef timInit;
- FL_GPTIM_OC_InitTypeDef timOCInit;
- FL_GPIO_InitTypeDef gpioInit = {0};
- gpioInit.pin = FL_GPIO_PIN_0|FL_GPIO_PIN_1;//PC0,PC1
- gpioInit.mode = FL_GPIO_MODE_DIGITAL;
- gpioInit.outputType = FL_GPIO_OUTPUT_PUSHPULL;
- gpioInit.pull = FL_DISABLE;
- gpioInit.remapPin = FL_DISABLE;
- FL_GPIO_Init(GPIOC, &gpioInit);
复制代码
然后配置通用定时器
- timInit.prescaler = 800 - 1; // 分频系数8000
- timInit.counterMode = FL_GPTIM_COUNTER_DIR_UP; // 向上计数
- timInit.autoReload = 200 - 1; // 自动重装载值1000
- timInit.clockDivision = FL_GPTIM_CLK_DIVISION_DIV1; // 死区和滤波分频
- timInit.autoReloadState = FL_ENABLE; // 预装载preload使能
- FL_GPTIM_Init(GPTIM1, &timInit);
复制代码 然后配置相应输出通道
- timOCInit.OCMode = FL_GPTIM_OC_MODE_PWM1; // 输出比较模式PWM1
- timOCInit.OCETRFStatus = FL_DISABLE; // OC1REF不受ETR影响
- timOCInit.OCFastMode = FL_DISABLE; // 关闭快速使能
- timOCInit.compareValue = 500; // 比较值500
- timOCInit.OCPolarity = FL_GPTIM_OC_POLARITY_NORMAL; // OC正常输出
- timOCInit.OCPreload = FL_DISABLE; // OC preload 无效
- FL_GPTIM_OC_Init(GPTIM1, FL_GPTIM_CHANNEL_1, &timOCInit);//CH1
- FL_GPTIM_OC_Init(GPTIM1, FL_GPTIM_CHANNEL_2, &timOCInit);//CH2
复制代码 最后进行PWM的调整实现呼吸效果
- if(dir)ledpwm++;
- else ledpwm--;
复制代码 演示效果
完整代码:
GPTIM PWM呼吸灯.rar
(6.61 MB, 下载次数: 1040)
|
|