软件设计在软件上,TI对每一款芯片都提供例程,如《C2834x C/C++ 头文件和外设示例 》,这个我想大家都懂得,就不多说了。但是有一点需要提醒的就是有时候例程里面的代码也不一定全对,也有一些小的bug,所以写代码的时候自己要小心。
举个bug的例子:
在《C2833x C2823x C C++ 头文件和外设示例》--->DSP2833x_SysCtrl.c--->InitPeripheralClocks()中有几句代码:
// XCLKOUT to SYSCLKOUT ratio. By default XCLKOUT = 1/4 SYSCLKOUT
// XTIMCLK = SYSCLKOUT/2
XintfRegs.XINTCNF2.bit.XTIMCLK = 1;
// XCLKOUT = XTIMCLK/2
XintfRegs.XINTCNF2.bit.CLKMODE = 1;
// Enable XCLKOUT
XintfRegs.XINTCNF2.bit.CLKOFF = 0;
如果你想将XCLKOUT关掉,很正常的在这里令XintfRegs.XINTCNF2.bit.CLKOFF = 1 即可,但是在例程中你会发现,你改过之后XCLKOUT还是会输出,没有被关掉。导致这样的原因就是这几句话前面还差了一条语句就是:
SysCtrlRegs.PCLKCR3.bit.XINTFENCLK = 1; // XTIMCLK
如果不讲XINTF的时钟打开,对外设寄存器的操作是不会有效的。而例程中刚好将时钟开启的语句放到了配置外设寄存器的后面。
希望上面所写的这样对大家有所帮助。 |