就是:串行通信接口寄存器A中的控制寄存器1的所有瞎升位
是对寄存器SCICTL1整体进行 *** 作的
在头文件里,要对逗源SCI的所有寄存器进行位域和共同体定义,最后要对SCI整体进行结构体定义即:struct SCI_REGS 并进行声明,从而在编写源程序时可以调用寄存器磨指老即:SciaRegs.SCICTL1.all
计算公式BRR=LSPCLK/Bps/8-1,如果没有记错的话,F2812推荐使用最大PLLClk=150MHz,sysclk和LSPclk有设置,LSPclk=sysclk/2sysclk最大可以取150M。可见理论上看,scI口的波特率可以计算闹并为75M/8,约9.375M的波特率。真正设乎做置时根据时钟设置可以到1M,但是请注意所选用的协议芯片是否支持这么高的速度。常见Rs422、Rs485、Rs232协议芯片是难以支持1M的,通常最大支持在230.4Kbps,再大就需要注岁弯衡意芯片的选型了。要注意电平转换芯片容忍的最大速率。
这是我正在用的初始化程序。你可以比较一运亮下void InitSci(void)
{
// Initialize SCI-A:
EALLOW
GpioMuxRegs.GPGMUX.bit.SCITXDB_GPIOG4 = 1
GpioMuxRegs.GPGMUX.bit.SCIRXDB_GPIOG5 = 1
EDIS
/* loopback 8 bit data */
ScibRegs.SCICCR.all = 0x07// 1 bit stop, disable parity, idle mode, 8 bits data
ScibRegs.SCICTL1.all = 0x03// enable TX
ScibRegs.SCICTL2.all = 0x03//
ScibRegs.SCIHBAUD = 0x00
ScibRegs.SCILBAUD = 0x61//f3 19200 79 38400 150mhz
ScibRegs.SCICTL1.all = 0x23//enable sci
PieCtrl.PIEIER9.bit.INTx3 = 1//scirxintb enable int
PieCtrl.PIEIER9.bit.INTx4 = 1//scitxintb
//羡顷tbd...
//旁派宽 Initialize SCI-B:
//tbd...
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)