如题,
按Data Sheet上的要求,已经将External Bus Selection Register上的Parallel Port Mode bit配置为00(或01)。如何配置接口寄存器,包括使能,设置输入或输出。
API是哪个?
我尝试了
......
GPIO_FSET(AGPIOEN,IO8,1); //使能
GPIO_FSET(AGPIODIR,IO8DIR,1); //设置方向为输出
......
但是调试没有成功,请问这两个API使用的正确吗?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
如题,
按Data Sheet上的要求,已经将External Bus Selection Register上的Parallel Port Mode bit配置为00(或01)。如何配置接口寄存器,包括使能,设置输入或输出。
API是哪个?
我尝试了
......
GPIO_FSET(AGPIOEN,IO8,1); //使能
GPIO_FSET(AGPIODIR,IO8DIR,1); //设置方向为输出
......
但是调试没有成功,请问这两个API使用的正确吗?
拉高和拉低语句我是这样写的:
......
GPIO_FSET(AGPIODATA,IO8D,0);
delay();
GPIO_FSET(AGPIODATA,IO8D,1);
......
应该也没有问题吧?
我是将对应的引脚连接了一个LED灯,写了一个简单的循环程序来让LED灯闪烁。 之前在另一个帖子里问了你如何将C7配置成GPIO,调试时就是用的这个闪烁程序和LED灯。
量过了
把管脚配置成高电平输出以后,用万用表量显示为0V。
但是我读AGPIODATA寄存器里对应的管脚状态值(IO8D)是,显示的是1。
是不是我的管脚焊接有问题?
是拉高的,在这个初始条件下,EBSR中的Parallel Port Mode bit 是01.
但是我又手动改为了00,所以GPIO0的状态应该就不影响了吧?
通过对寄存器整体赋值发现,AGPIO管脚是工作的,只不过我这边的电路图有问题,管脚号描述的不对,导致测量的是一个错误的管脚。
谢谢Zhai !
谢谢Shine !
抱歉,刚才检查了一遍,管脚位置和名字没有出错。错误在于API:
如果对整个寄存器赋值:
GPIO_RSET(AGPIODATA,0x0001); //根据DATA Sheet的描述,应该是拉高了AGPIODATA寄存器的第一个管脚的值,即AGPIO0的值
但此操作的效果却等同于:
GPIO_FSET(AGPIODATA,IO8D,1); //此语句从字面上看,应该是拉高AGPIO8
所以个人认为,库函数在定义AGPIO各个寄存器地址值时应该有差错;
并且,csl_pgpiohal.h这个头文件里,只定义了AGPIO8-13,没有定义AGPIO0-7.
如果有错误的地方,请指正。
谢谢