90houyidai 发表于 2021-11-13 20:19

【复旦微FM33LG0X试用】点个灯

有幸抽中盲盒,获得复旦微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--;演示效果


完整工程

呐咯密密 发表于 2021-11-16 09:16

是不是没勾选rest and run

90houyidai 发表于 2021-11-16 22:41

四线连接勾选reset and run,download不能自动复位

yljon 发表于 2021-11-18 23:44

非常不错
页: [1]
查看完整版本: 【复旦微FM33LG0X试用】点个灯