如何在BIM中添加pin的驱动,因为ImgB没有OAD功能,希望在ImgB不能正常工作时,也能够在boot的时候通过引脚电平去选择从ImgA启动,但是我想加入PIN.h和CC26XXPIN.C的时候提示各种错误,我把其他工程中的路径包含和宏定义都加上也不行,请问是还缺少什么?
Yan:
Jianhua,
BIM木有跑TI-RTOS,所以显然你的方法是不行的,你的方法都是TI-RTOS的接口。
这种情况下你只能通过访问寄存器来操作IO。
看一下TRM文档的寄存器配置方法,代码里用 HWREG(IOC_BASE+ ×××) 的方法配置寄存器就行。
JianHua Zhou2:
回复 Yan:
Yan,
GPIO的时钟默认是开启的么?我写了一个配置函数,一个读取电平的函数,可是每次运行到读取电平的函数就出错了,这个寄存器怎么不能访问呢?
#define Board_Module_EN IOID_1#define CFG_HYST_EN 30#define CFG_IE 29#define PULL_CTL_H 14#define PULL_CTL_L 13
void Pin_Init(void){uint32_t Origincfg = 0;Newcfg = 0;//PRCM GPIO clkHWREG(PRCM_BASE + PRCM_O_GPIOCLKGR) |= 0x01;//Origincfg = HWREG(IOC_BASE + IOC_O_IOCFG0 + 4*Board_Module_EN);Newcfg = Origincfg;//InputNewcfg = Newcfg |(1<<CFG_IE);//NopullNewcfg = Newcfg |(1<<PULL_CTL_H);Newcfg = Newcfg |(1<<PULL_CTL_L);//HYSNewcfg = Newcfg |(1<<CFG_HYST_EN);
HWREG(IOC_BASE + IOC_O_IOCFG0 + 4*Board_Module_EN) = Newcfg;
}uint8_t Pin_Read(uint8_t Pinid){ uint8_t val=0; val = (uint8_t)(HWREG(GPIO_BASE+GPIO_O_DIN31_0)>>Pinid)&0x01; return val;}