DSP初学者请教GPIO问题
各位大神,小弟初学DSP,有诸多的疑惑需要请教,我在手把手教你学DSP(基于2812)这本书上看到的GPIO控制寄存器用的是 GpioMuxRegs.GPAMUX.xxxxx这样的写法,而我看到的28335的板子带的例程里面用的是 GpioCtrlRegs.GPAMUX1.xxxxx 这样的写法,那么GPIO控制寄存器到底是应该用哪个名字呢?为什么不一样?这个寄存器名称是在哪里规定的呢?可以自己定义吗?在做项目的时候需要自己定义吗? 具体芯片有具体芯片的手册,手册里有相应的寄存器定义,你看TI的官方例程会事半功倍 https://bbs.21ic.com/icview-619750-1-1.htmlhttps://bbs.21ic.com/icview-390183-1-1.html
https://bbs.21ic.com/icview-735396-1-1.html
这都是各位网友的分享请查看 谢谢各位的解答,寄存器GPAMUX 和 GPAMUX1 这两个我能理解,只是前面的GpioMuxRegs 和 GpioCtrlRegs ,这两个是从哪里来的,datasheet里面也找不到,不知道是从哪里规定的,所有的28335的板子都是叫GpioCtrlRegs 吗? 先设置是否为 IO口 在设置输入输出 GpioMuxRegs是用来选择GPIO口的功能的寄存器
GpioCtrlRegs是GPIO控制寄存器
我记得datasheet有专门讲GPIO口设置的那一节,你可以好好看一下 你到 controlsuit 安装目录里搜到 “DSP2833x_Gpio.c” 这个文件,里面有这个函数:
void InitGpio(void)
{
EALLOW;
// Each GPIO pin can be:
// a) a GPIO input/output
// b) peripheral function 1
// c) peripheral function 2
// d) peripheral function 3
// By default, all are GPIO Inputs
GpioCtrlRegs.GPAMUX1.all = 0x0000; // GPIO functionality GPIO0-GPIO15
GpioCtrlRegs.GPAMUX2.all = 0x0000; // GPIO functionality GPIO16-GPIO31
GpioCtrlRegs.GPBMUX1.all = 0x0000; // GPIO functionality GPIO32-GPIO39
GpioCtrlRegs.GPBMUX2.all = 0x0000; // GPIO functionality GPIO48-GPIO63
GpioCtrlRegs.GPCMUX1.all = 0x0000; // GPIO functionality GPIO64-GPIO79
GpioCtrlRegs.GPCMUX2.all = 0x0000; // GPIO functionality GPIO80-GPIO95
GpioCtrlRegs.GPADIR.all = 0x0000; // GPIO0-GPIO31 are inputs
GpioCtrlRegs.GPBDIR.all = 0x0000; // GPIO32-GPIO63 are inputs
GpioCtrlRegs.GPCDIR.all = 0x0000; // GPI064-GPIO95 are inputs
// Each input can have different qualification
// a) input synchronized to SYSCLKOUT
// b) input qualified by a sampling window
// c) input sent asynchronously (valid for peripheral inputs only)
GpioCtrlRegs.GPAQSEL1.all = 0x0000; // GPIO0-GPIO15 Synch to SYSCLKOUT
GpioCtrlRegs.GPAQSEL2.all = 0x0000; // GPIO16-GPIO31 Synch to SYSCLKOUT
GpioCtrlRegs.GPBQSEL1.all = 0x0000; // GPIO32-GPIO39 Synch to SYSCLKOUT
GpioCtrlRegs.GPBQSEL2.all = 0x0000; // GPIO48-GPIO63 Synch to SYSCLKOUT
// Pull-ups can be enabled or disabled.
GpioCtrlRegs.GPAPUD.all = 0x0000; // Pullup's enabled GPIO0-GPIO31
GpioCtrlRegs.GPBPUD.all = 0x0000; // Pullup's enabled GPIO32-GPIO63
GpioCtrlRegs.GPCPUD.all = 0x0000; // Pullup's enabled GPIO64-GPIO79
//GpioCtrlRegs.GPAPUD.all = 0xFFFF; // Pullup's disabled GPIO0-GPIO31
//GpioCtrlRegs.GPBPUD.all = 0xFFFF; // Pullup's disabled GPIO32-GPIO34
//GpioCtrlRegs.GPCPUD.all = 0xFFFF // Pullup's disabled GPIO64-GPIO79
EDIS;
}
可以看到,只有 GpioCtrlRegs,另一个是不存在的。 我这个文件可能是改过的,但说明这个问题上是一样的。
zhangmangui 发表于 2014-11-26 23:51
https://bbs.21ic.com/icview-619750-1-1.html
https://bbs.21ic.com/icview-390183-1-1.html
请问GpioCtrlRegs.GPCMUX1.bit.GPIO64=3是什么情况GPxMUX不是只有0和1两种情况表示写入和输出吗?三是什么情况? 598835484 发表于 2015-11-15 10:40
请问GpioCtrlRegs.GPCMUX1.bit.GPIO64=3是什么情况GPxMUX不是只有0和1两种情况表示写入和输出吗?三 ...
表示将GPIO64设置为XD15(I/O) 好像2812和28335架构不大一样,具体的你看一下
页:
[1]