主题 : 高手指点一二!关于手册中LEDDriver 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 2432
精华: 0
发帖: 94
金钱: 730 两
威望: 323 点
贡献值: 0 点
综合积分: 188 分
注册时间: 2008-11-17
最后登录: 2011-04-07
楼主  发表于: 2009-09-07 17:51

 高手指点一二!关于手册中LEDDriver

BOOL LED_IOControl(DWORD hOpenContext,
                   DWORD dwCode,
                   PBYTE pBufIn,
                   DWORD dwLenIn,
                   PBYTE pBufOut,
                   DWORD dwLenOut,
                   PDWORD pdwActualOut)
{
    switch(dwCode)
    {
    case IO_CTL_LED_1_ON:
        s2440IOP->rGPBDAT=s2440IOP->rGPBDAT&~(0x1<<5);
    case IO_CTL_LED_2_ON:
        s2440IOP->rGPBDAT=s2440IOP->rGPBDAT&~(0x1<<6);
        break;
我的疑问有两点:
一,这个驱动应该是点亮和熄灭GPB5到GPB8这4个灯,GPB[10:0]一共有11位,请问是怎么判断第6位对应的是灯1,第7位对应的是灯2...或者手册的哪里有这些相关的描述?
二,在case IO_CTL_LED_1_ON:后,没有Break,这不表示接着执行case IO_CTL_LED_2_ON嘛?
希望知道的能解答一下!
谢谢!
级别: 新手上路
UID: 4325
精华: 0
发帖: 10
金钱: 65 两
威望: 32 点
贡献值: 0 点
综合积分: 20 分
注册时间: 2009-03-10
最后登录: 2015-05-20
1楼  发表于: 2009-09-11 10:41
手册中case IO_CTL_LED_1_ON应该带有break的,估计是印丢了。BSP中的驱动文件是正确的。
你应该看一下原理图。每个灯连接在哪个GPIO脚上,你就知道该移几位了……