MTK 功能機6261a下除錯震動開關的LED跑馬燈驅動
阿新 • • 發佈:2018-12-09
一直做上層, 沒弄過驅動, 最近其他人有點忙, 沒空弄, 這個東西又比較簡單, 所以就交給我了.作為新手, 還是記錄一下.
1., 根據硬體同事提供的原理圖:
確定了LED使用的gpio是GPIO1,GPIO2,GPIO3, 對應led的rgb三個顏色.
2.開啟到專案的配置工具: \custom\drv\Drv_Tool\DrvGen.exe, 工具中開啟\custom\codegen\GFIVE61A_11C_BB\codegen.dws
3.配置GPIO1,GPIO2,GPIO3. 如下圖:
之後就是點選save和gencode, 這樣程式碼就生成了,
生成後的程式碼在custom\codegen\GFIVE61A_11C_BB\gpio_drv.h等檔案.
其中類似:
#define GPIO_PORT_1 (1|0x80)
#define GPIO_PORT_2 (2|0x80)
#define GPIO_PORT_3 (3|0x80)
就是配置要進行操作的io口.
4.在程式碼中進行控制, 找個地方, include gpio_drv.h, 就可以開始控制deng等的開關了!
示例:
void led_set_color(kal_uint8 r, kal_uint8 g, kal_uint8 b) { // GPIO_InitIO(OUTPUT, GPIO_PORT_1); //初始化io口 // GPIO_InitIO(OUTPUT, GPIO_PORT_2); //初始化io口 // GPIO_InitIO(OUTPUT, GPIO_PORT_3); //初始化io口 if(r) GPIO_WriteIO(1,GPIO_PORT_1); else GPIO_WriteIO(0,GPIO_PORT_1); if(g) GPIO_WriteIO(1,GPIO_PORT_3); else GPIO_WriteIO(0,GPIO_PORT_3); if(b) GPIO_WriteIO(1,GPIO_PORT_2); else GPIO_WriteIO(0,GPIO_PORT_2); }