求高手解释这是怎么回事啊?不明白能否向GPIO口写数据?这样写不对吗?我用的是TI的C2000Launchpad F28027,用CCSv5.3编译的。另外,能否顺便告诉我CCS中定义位变量怎么定义啊?谢谢了!
[ 本帖最后由 我是一只小麻雀 于 2013-8-8 00:10 编辑 ]
看你的定义GET_Sensor_SDA 是读端口啊。ack=GET_Sensor_SDA 还靠谱些。建议先把底层用到的函数搞清楚了在写程序。
嗯,好的,谢谢!现在我还初学,对底层函数还不够清楚,不知道使用哪个函数能向GPIO口写数据?
读出gpioNumber所在IO数据寄存器(GPADAT和GPBDAT),把提取gpioNumber相应位数据。
GPADAT读出的数据就是GPIO0_32的数据,GPBDAT读出的数据就是GPIO32以上IO口的数据。
这些你可以看28027 关于IO口的datasheet,
初学者要学的是如何去学习查资料。
uint16_t GPIO_getData(GPIO_Handle gpioHandle, const GPIO_Number_e gpioNumber)
{
GPIO_Obj *gpio = (GPIO_Obj *)gpioHandle;
if(gpioNumber < GPIO_Number_32)
{
return ((gpio->GPADAT >> gpioNumber) & 0x0001);
}
else
{
return ((gpio->GPBDAT >> (gpioNumber - GPIO_Number_32)) & 0x0001);
}
}
回复 4楼ltbytyn 的帖子
斑竹,你们用的是库函数?有必要去学习一下吗?我从来都没有谁用过C2000的库函数。
如果楼主是初学,建议学一下C语言,这是基础,CCS使用的C语言,是标准的。
再一个,如果想掌握这个单片机,看看手册,开始时别使用它的库,这样会对它的整个编程过程会有深入的了解