1.开发环境

程序开发平台:CDK
程序下载软件:Upgrade_Tools_V1.4.8.exe
驱动:ch340 usb转串口驱动

2.代码

2.原理图

led0 —> PB0
led1 —> PB1
led2 —> PB2
image.png

led.c

  1. #include "led.h"
  2. #include "wm_hal.h"
  3. void led_init(void)
  4. {
  5. GPIO_InitTypeDef gpio_init_struct;
  6. gpio_init_struct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2;
  7. gpio_init_struct.Mode = GPIO_MODE_OUTPUT;
  8. gpio_init_struct.Pull = GPIO_NOPULL;
  9. HAL_GPIO_Init(GPIOB, &gpio_init_struct);
  10. HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_SET);
  11. }

led.h

  1. //led.h
  2. #ifndef _LED_H
  3. #define _LED_H
  4. #define led0_on() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET)
  5. #define led0_off() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET)
  6. #define led0_toggle() HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
  7. #define led1_on() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET)
  8. #define led1_off() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET)
  9. #define led1_toggle() HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_1);
  10. #define led2_on() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET)
  11. #define led2_off() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_SET)
  12. #define led2_toggle() HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_2);
  13. void led_init(void);
  14. #endif

修改main.c

  1. #include
  2. #include "wm_hal.h"
  3. #include "led.h"
  4. //#include "csi_config.h"
  5. void Error_Handler(void);
  6. void led_init(void);
  7. int main(void)
  8. {
  9. SystemClock_Config(CPU_CLK_240M);
  10. printf("enter main\r\n");
  11. printf("hello,world\r\n");
  12. led_init();
  13. //trap_c(0x00);
  14. while (1)
  15. {
  16. printf(".");
  17. led0_toggle();
  18. led1_toggle();
  19. led2_toggle();
  20. // HAL_Delay(500); 不知道为啥不起作用
  21. int i = 600;
  22. while (i--){
  23. printf(i);
  24. };
  25. }
  26. }
  27. void Error_Handler(void)
  28. {
  29. while (1)
  30. {
  31. }
  32. }
  33. void assert_failed(uint8_t *file, uint32_t line)
  34. {
  35. printf("Wrong parameters value: file %s on line %d\r\n", file, line);
  36. }

image.png

image.png
驱动:ch340 usb转串口驱动
相关开发平台搭建及安装,论坛很多啦,这里就不再赘述了。

2. 实验目的

让板载得三个led实现闪烁效果

3. 硬件平台

联盛德W806-KIT
如图,飞线是为了实现串口一键下载,不用手动复位了。
查看板子原理图,led对应引脚情况如下:

5. 程序编译下载

右击工程 -> 选择build
工程编译输出如下,没有错误或警告,表示编译成功。
打开 Upgrade_Tools_V1.4.8.exe,开始下载程序

6. 实验现象

三个 led 同时闪烁
下载软件串口成功接收到 helloworld 打印

7. 总结

官方的 sdk 代码,不要随便改动,可能带来意想不到得到 bug。
官方的 CDK 还是蛮好用的