【板子开箱】Ai-M61-32S-Kit点灯-PWM呼吸灯

[复制链接]
查看660 | 回复1 | 2023-11-20 17:30:16 | 显示全部楼层 |阅读模式
本帖最后由 Charles2023 于 2023-11-20 17:30 编辑

板子收到了,点灯开光...

1. 打开AiPi-Open-Kits/aithinker_Ai-M6X_SDK/examples/peripherals/pwm_v2内的pwm_basic项目,修改main.c文件如下:
  1. #include "bflb_mtimer.h"
  2. #include "bflb_pwm_v2.h"
  3. #include "bflb_clock.h"
  4. #include "board.h"
  5. #include "bflb_gpio.h"

  6. struct bflb_device_s *pwm;

  7. void board_pwm_led_init()
  8. {
  9.         struct bflb_device_s *gpio;

  10.         gpio = bflb_device_get_by_name("gpio");
  11.         // 红灯: GPIO_PIN_12, PWM_CH0
  12.         // 绿灯: GPIO_PIN_14, PWM_CH2
  13.         // 蓝灯: GPIO_PIN_15, PWM_CH3
  14.         bflb_gpio_init(gpio, GPIO_PIN_14, GPIO_FUNC_PWM0 | GPIO_ALTERNATE | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_1);
  15. }

  16. int main(void)
  17. {
  18.     board_init();
  19.         board_pwm_led_init();

  20.         pwm = bflb_device_get_by_name("pwm_v2_0");

  21.         /* period = .XCLK / .clk_div / .period = 40MHz / 40 / 1000 = 1KHz */
  22.         struct bflb_pwm_v2_config_s cfg = {
  23.                 .clk_source = BFLB_SYSTEM_XCLK,
  24.                 .clk_div = 40,
  25.                 .period = 1000,
  26.         };

  27.     bflb_pwm_v2_init(pwm, &cfg);
  28.     bflb_pwm_v2_start(pwm);

  29.     uint16_t high_threhold = 200;
  30.     while (1) {
  31.             printf("pwm basic running\r\n");
  32.             bflb_pwm_v2_channel_positive_start(pwm, PWM_CH2);

  33.             for (size_t i = high_threhold; i >0; i--)
  34.             {
  35.                     bflb_pwm_v2_channel_set_threshold(pwm, PWM_CH2, i, high_threhold);
  36.                     bflb_mtimer_delay_ms(10);
  37.             }
  38.             for (size_t i = 1; i < high_threhold; i++)
  39.             {
  40.                     bflb_pwm_v2_channel_set_threshold(pwm, PWM_CH2, i, high_threhold);
  41.                     bflb_mtimer_delay_ms(10);
  42.             }
  43.             bflb_pwm_v2_channel_positive_stop(pwm, PWM_CH2);
  44.         }
  45. }
复制代码
2. 连接数据线,打开设备管理器查看com端口号为COM5(各设备端口不一定相同):
com5.png

3. 按住烧录键点按重置键
keys.png

4. 在当前目录打开git-bash,输入以下命令(注:COM5为在设备管理器看到的端口号,按实际修改):
  1. make flash CHIP=bl616 COMX=COM5
复制代码

5. 控制台输出All Success表示烧录成功
flash.png

6. 点按重置键,呼吸灯点亮:
pwm-led.gif

前期帖子:
【板子申请】Ai-M61-32S开发环境搭建一键脚本win
http://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=43075
(出处: 物联网开发者社区-安信可论坛)


【板子开箱】Ai-M61-32S-Kit顺丰包邮零元购
http://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=43377
(出处: 物联网开发者社区-安信可论坛)




                               
登录/注册后可看大图


本帖被以下淘专辑推荐:

回复

使用道具 举报

致閑 | 2023-11-20 18:03:21 | 显示全部楼层
恭喜啊
回复

使用道具 举报

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

本版积分规则