F2812中SciaRegs.SCICTL1.all是什么意思

F2812中SciaRegs.SCICTL1.all是什么意思,第1张

SciaRegs.SCICTL1.all

就是:串行通信接口寄存器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...

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12478382.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存