28335 SCIC 寄存器赋值失败
28335 的SCIA调试没有问题之后,在对28335的SCIC口进行硬件测试时出现寄存器无法赋值问题。 具体问题是: 对SCIC 初始化之后,用watch窗口看ScicRegs的各个寄存器数值,有些为0 ,有些乱码,不是程序的赋值。1、初始化函数直接拷贝SCIA的配置,单步执行函数,也进入了初始化函数。GPIO口配置GPIO62GPIO63 为SCIC口。
2、排除没有使能SCIC CLK信号。
3、CMD文件配置正确。
4、SCIC的寄存器应该不存在EALLOW保护。
无法明白哪里出了问题,28335的datasheet对SCIC的寄存器没有说明,出现这个问题很头疼啊。 随意对SCIB进行寄存器赋值就是好的,真 难 受。。。。
void scic_fifo_init()
{
ScicRegs.SCICCR.all =0x0007; // 1 stop bit,No loopback
// No parity,8 char bits,
// async mode, idle-line protocol
ScicRegs.SCICTL1.all =0x0003; // enable TX, RX, internal SCICLK,
// Disable RX ERR, SLEEP, TXWAKE
ScicRegs.SCICTL2.bit.TXINTENA =0; //disable tx int
ScicRegs.SCICTL2.bit.RXBKINTENA =0;//disable rx int
ScicRegs.SCIHBAUD =1;
ScicRegs.SCILBAUD =0xE7;
ScicRegs.SCICCR.bit.LOOPBKENA =1; // Disable loop back
ScicRegs.SCIFFTX.all=0xC028;
ScicRegs.SCIFFRX.all=0x0028;
ScicRegs.SCIFFCT.all=0x00;
ScicRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset
ScicRegs.SCIFFTX.bit.TXFIFOXRESET=1;
ScicRegs.SCIFFRX.bit.RXFIFORESET=1;
} 这个不懂,我以前遇到都是关了软件再来一次。。。。。。。 自己结贴。 SCI应该还是比较简单的。我的问题比较二逼,我在RAM里调试串口,然后RAM文件夹的SCIC 的CLK 没有使能。 我用search查询的时候 首先查到是FLASH文件夹中的,那个里面的SCIC CLK 使能了。然后 FLASH文件夹在CCS5里面是排在 RAM文件夹 前面的的, 所以我自以为 SCIC CLK已经使能过了。 所以,如果发现DSP的寄存器出现无法赋值现象应该还是我上述排除的那几个原因。 如果这样还不行,那二逼问题一般都是二逼错误,这就没办法了。
其实最不可能的是,DSP坏了。。。 这么容易坏,那就说明是拆机货。
页:
[1]