一直做上层, 没弄过驱动, 最近其他人有点忙, 没空弄, 这个东西又比较简单, 所以就交给我了.作为新手, 还是记录一下.
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);
}