W803开发板测试-1

发布于 2025-02-24 19:26:18

一、W803测试_01 GPIO点亮LED
开发板收到后确实有点怵,因为在早年买过一块W806开发板,因为没有弄好他的开发平台就一直吃灰,想借此机会学习海凌科的W803,顺便将W806也一并通过。
为了能进入状态,可谓下了很大的功夫,整整一天一共完成能了三个平台的搭建,一不小心还将Visual Studio 2022也给安装上了,这样机器里就有了Vscode,Python,WM IoT SDK三个开发平台,经测试都能用,试了一下感觉还是WM IoT SDK用起来比较顺手,DOS界面,DOS命令还没有完全忘记。其中的到过许多在QQ中的朋友的帮助提醒才算搭建完成。最后采用的方法是:
用记事本编辑文档,用WM IoT SDK编译下载。
我的测试思路一直是由简到难,先从最简单的GPIO开始。
当打开main.c时,里面的代码确实让人抓瞎,完全不同以前接触过的所有MCU的代码,有点像英文叙说一样的写,首个GPIO中的main.c看完先不管三七二十一,就如下操作:
退到gpio文件夹(经测试,必须在这一级):wm.py build
经过短时编译,提示想flash下载:wm.py flash -p com1
为了不出错,一改往常的随意性,将com口定义为com1。
实际上一开始运行,led就只亮不闪,还不知道哪个口,用外接led一个一个口的试才知道时PB11,一直亮。他的定义非常古怪:
//not defined in device tree

define WM_GPIO_DEFINE3 WM_GPIO_NUM_27

遍历文档一开始居然找不到此定义在那个文档里,咨询无果,只好挨个的include文档打开,关联搜找,最后才找到他的定义。
我想用4个gpio口来驱显4线lcd,所以定义为:

define WM_GPIO_DEFINE3 WM_GPIO_NUM_17

define WM_GPIO_DEFINE4 WM_GPIO_NUM_18

define WM_GPIO_DEFINE5 WM_GPIO_NUM_19

define WM_GPIO_DEFINE6 WM_GPIO_NUM_20

相当于PB1-PB4,这几个口挨着,PB0好像不能定义为普通IO口,不起作用。
定义完,并且按照它的定义函数复制3个:
//Initialize WM_GPIO_NUM_2, it is not defined in the device tree for Input
if (WM_ERR_SUCCESS != (err = wm_drv_gpio_iomux_func_sel(WM_GPIO_DEFINE2, WM_GPIO_IOMUX_FUN5)) ||
WM_ERR_SUCCESS != (err = wm_drv_gpio_set_dir(WM_GPIO_DEFINE2, WM_GPIO_DIR_INPUT)) ||
WM_ERR_SUCCESS != (err = wm_drv_gpio_set_pullmode(WM_GPIO_DEFINE2, WM_GPIO_FLOAT)) ||
WM_ERR_SUCCESS != (err = wm_drv_gpio_set_intr_mode(WM_GPIO_DEFINE2, WM_GPIO_IRQ_TRIG_DOUBLE_EDGE)) ||
WM_ERR_SUCCESS != (err = wm_drv_gpio_add_isr_callback(WM_GPIO_DEFINE2, (wm_drv_gpio_isr_t)wm_drv_gpio_isr_pin_handler,(void *)WM_GPIO_DEFINE2)) ||
WM_ERR_SUCCESS != (err = wm_drv_gpio_enable_isr(WM_GPIO_DEFINE2))) {
wm_log_error("WM_GPIO_DEFINE2 cfg err %d", err);
return err;
}
后3个只是WM_GPIO_DEFINE2尾数改为3,4,5。
之后编译下载,结果还是不闪,按reset键后,灭了又亮,不动了。在坊间咨询得到 天剑 的热心指导“用串口看看”——非常奇怪的是,main.c中并没有printf函数出现,但串口确实出数据了,报IO口高出错,回头就将无用语句删除,添加了while循环语句,结果就出来了。看头文件,这工程默认将freeRTOS给加里面了。
Led正常后,下边就是驱显LCD的事了。
1-1.jpg

0 条评论

发布
问题