1.开发环境
程序开发平台:CDK
程序下载软件:Upgrade_Tools_V1.4.8.exe
驱动:ch340 usb转串口驱动
2.代码
2.原理图
led0 —> PB0
led1 —> PB1
led2 —> PB2
led.c
#include "led.h"#include "wm_hal.h"void led_init(void){GPIO_InitTypeDef gpio_init_struct;gpio_init_struct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2;gpio_init_struct.Mode = GPIO_MODE_OUTPUT;gpio_init_struct.Pull = GPIO_NOPULL;HAL_GPIO_Init(GPIOB, &gpio_init_struct);HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_SET);}
led.h
//led.h#ifndef _LED_H#define _LED_H#define led0_on() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET)#define led0_off() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET)#define led0_toggle() HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);#define led1_on() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET)#define led1_off() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET)#define led1_toggle() HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_1);#define led2_on() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET)#define led2_off() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_SET)#define led2_toggle() HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_2);void led_init(void);#endif
修改main.c
#include#include "wm_hal.h"#include "led.h"//#include "csi_config.h"void Error_Handler(void);void led_init(void);int main(void){SystemClock_Config(CPU_CLK_240M);printf("enter main\r\n");printf("hello,world\r\n");led_init();//trap_c(0x00);while (1){printf(".");led0_toggle();led1_toggle();led2_toggle();// HAL_Delay(500); 不知道为啥不起作用int i = 600;while (i--){printf(i);};}}void Error_Handler(void){while (1){}}void assert_failed(uint8_t *file, uint32_t line){printf("Wrong parameters value: file %s on line %d\r\n", file, line);}

驱动:ch340 usb转串口驱动
相关开发平台搭建及安装,论坛很多啦,这里就不再赘述了。
2. 实验目的
3. 硬件平台
联盛德W806-KIT
如图,飞线是为了实现串口一键下载,不用手动复位了。
查看板子原理图,led对应引脚情况如下:
5. 程序编译下载
右击工程 -> 选择build
工程编译输出如下,没有错误或警告,表示编译成功。
打开 Upgrade_Tools_V1.4.8.exe,开始下载程序
6. 实验现象
三个 led 同时闪烁
下载软件串口成功接收到 helloworld 打印
7. 总结
官方的 sdk 代码,不要随便改动,可能带来意想不到得到 bug。
官方的 CDK 还是蛮好用的

