在技术参考中,找到时钟章节
只能观察每个寄存器,才能看到寄存器控制那个外设的时钟
在我板子里面的原理图是
但是TI的提供的库函数是分ABC的,刚开始就不知道怎麽分。GPIO68到GPIO64,应该是在ABC的那个端口;
在DSP开发原理中找到;同时也可以在寄存器中观察出来(截图太长了)。所以用的是c端口
全靠自己看结构图;或者用普中,或者其他公司的开发攻略;
在复用表方面,各个公司的开发原理,又做得不够好;
如上图MUX复用表;64到68只有GPIO功能,没有其他复用;
配置控制有控制寄存器;
写数据有数据寄存器;
- void led_all_flow_init()
- {
- EALLOW;
- SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;//系统控制,外设时钟3
- GpioCtrlRegs.GPCMUX1.bit.GPIO64 = 0;//复用寄存器 0为gpio
- GpioCtrlRegs.GPCPUD.bit.GPIO64 = 1;//上拉寄存器 1为上上拉
- GpioCtrlRegs.GPCDIR.bit.GPIO64 = 1;//方向寄存器,1为输出
-
- GpioCtrlRegs.GPCMUX1.bit.GPIO65 = 0;
- GpioCtrlRegs.GPCPUD.bit.GPIO65 = 1;
- GpioCtrlRegs.GPCDIR.bit.GPIO65 = 1;
-
- GpioCtrlRegs.GPCMUX1.bit.GPIO66 = 0;
- GpioCtrlRegs.GPCPUD.bit.GPIO66 = 1;
- GpioCtrlRegs.GPCDIR.bit.GPIO66 = 1;
-
- GpioCtrlRegs.GPCMUX1.bit.GPIO67 = 0;
- GpioCtrlRegs.GPCPUD.bit.GPIO67 = 1;
- GpioCtrlRegs.GPCDIR.bit.GPIO67 = 1;
-
- GpioCtrlRegs.GPCMUX1.bit.GPIO68 = 0;
- GpioCtrlRegs.GPCPUD.bit.GPIO68 = 1;
- GpioCtrlRegs.GPCDIR.bit.GPIO68 = 1;
-
- EDIS;
- }
-
- #define LED1_TOGGLE GpioDataRegs.GPCTOGGLE.bit.GPIO68 = 1 //反转gpio寄存器
- #define LED2_TOGGLE GpioDataRegs.GPCTOGGLE.bit.GPIO67 = 1
- #define LED3_TOGGLE GpioDataRegs.GPCTOGGLE.bit.GPIO66 = 1
- #define LED4_TOGGLE GpioDataRegs.GPCTOGGLE.bit.GPIO65 = 1
- #define LED5_TOGGLE GpioDataRegs.GPCTOGGLE.bit.GPIO64 = 1
-
- void delay_led()
- {
- int i = 0;
- int j = 0;
- for (i = 10000; i > 0; i--)
- for (j = 10000; j > 0; j--);
-
- }
- #define us_us 1000000
- void led_all_flow_twinkle(void)
- {
-
-
- LED1_TOGGLE;
- DELAY_US(us_us);//自带延时
- LED2_TOGGLE;
- DELAY_US(us_us);
- LED3_TOGGLE;
- DELAY_US(us_us);
- LED4_TOGGLE;
- DELAY_US(us_us);
- LED5_TOGGLE;
- DELAY_US(us_us);
-
- }