28035的LIN接口可以直接用来做SCI口吗?

28035的LIN接口可以直接用来做SCI口吗?,第1张

是可以的,下面是配置:

void linSciInit() { // 这里把 LIN 当 SCI 用。

//Allow write to protected registers

EALLOW

LinaRegs.SCIGCR0.bit.RESET = 0// Into reset

LinaRegs.SCIGCR0.bit.RESET = 1// Out of reset

LinaRegs.SCIGCR1.bit.SWnRST = 0// Into software reset

//SCI Configurations

LinaRegs.SCIGCR1.bit.COMMMODE = 0// Idle-Line Mode

LinaRegs.SCIGCR1.bit.TIMINGMODE = 1// Asynchronous Timing

LinaRegs.SCIGCR1.bit.PARITYENA = 0// No Parity Check

LinaRegs.SCIGCR1.bit.PARITY = 0// Odd Parity

LinaRegs.SCIGCR1.bit.STOP = 0// One Stop Bit

LinaRegs.SCIGCR1.bit.CLK_MASTER = 1// Enable SCI Clock

LinaRegs.SCIGCR1.bit.LINMODE = 0// SCI Mode

LinaRegs.SCIGCR1.bit.SLEEP = 0// Ensure Out of Sleep

LinaRegs.SCIGCR1.bit.MBUFMODE = 0// none Buffer Mode

LinaRegs.SCIGCR1.bit.LOOPBACK = 0// External Loopback

LinaRegs.SCIGCR1.bit.CONT = 1// Continue on Suspend in Emulation Mode

LinaRegs.SCIGCR1.bit.RXENA = 1// Enable RX

LinaRegs.SCIGCR1.bit.TXENA = 1//吵亩 Enable TX

//Ensure IODFT is disabled

LinaRegs.IODFTCTRL.bit.IODFTENA = 0x0

//Set transmission length )

LinaRegs.SCIFORMAT.bit.CHAR = 7// Eight bits

LinaRegs.SCIFORMAT.bit.LENGTH = 0// 1 byte

//Set baudrate

LinaRegs.BRSR.bit.SCI_LIN_PSL = 194/悄和/ Baud = 9600hz

LinaRegs.BRSR.bit.M = 0// 官方说的是这个值为 5,但实测 0 比 5 要稳定。

// Enable interrupts

LinaRegs.SCISETINT.bit.SETRXINT = 1// Enable RX interrupt

// LinaRegs.SCISETINT.bit.SETTXINT = 1// Enable TX interrupt,要发送的时候再打开。

//Set interrupt priority

LinaRegs.SCICLEARINTLVL.all = 0xFFFFFFFF// Set Int level of all interrupts to LVL 0

LinaRegs.SCIGCR1.bit.SWnRST = 1// bring out of software reset

// Disable write to protected registers

EDIS

}

注意,这里配置为 9600,测试时最大只能到 19200,再升运森高就会不稳定,原因未知。

配套 ISR:

interrupt void linaLevel0ISR(void) {

//Read-clear the interrupt vector

// Uint16 i

LinL0IntVect = LinaRegs.SCIINTVECT0.all

//RXINT

if (LinL0IntVect == 11) { //RXVect

com_rx = LinaRegs.SCIRD &0xff// Read data

if (cRxCounter <28) {

cRxBuffer[cRxCounter++] = com_rx

}

} else if (LinL0IntVect == 12) { //TXVect

if (txindex <tx_sum) //发1个

LinaRegs.SCITD = cTxBuffer[txindex++]

else { //发完了。

EALLOW

//timer_local

LinaRegs.SCICLEARINT.all = 0x000100// disable TX interrupt

LinaRegs.SCISETINT.bit.SETRXINT = 1// enable RX interrupt

EDIS

}

} else { //Other Interrupt

//There should not be other interrupts

linSciInit()

}

//Acknowledge the PIE to be able to receive more interrupts

PieCtrlRegs.PIEACK.all = PIEACK_GROUP9

}

TX_EN

ScibRegs.SCITXBUF = Scib_VarRx[i]

RX_EN

RX_EN;前加延时试试,往轮腊耐寄存器ScibRegs.SCITXBUF写数据,数局闷据腊春不会立刻完成发送的。

自己留好投稿时的文件号,然后登录网站查询~一般有以下几种情况:

1.SubmittedtoJournal刚提交的状态

2.ManuscriptreceivedbyEditorialOffice就是你的文章到了编辑手里了,证明投稿成功

3.Witheditor如果在投稿的时候没有要求选择编辑,就先带颂到主编那,主编会分派给别的编辑。这当中樱行州就会有另两个状态:

3.1.AwaitingEditorAssignment指派责任编辑Editorassigned是把你的文章分给一个编辑处理了。

3.2.EditorDeclinedInvitation如果编辑接手处理了就会邀请审稿人了。

4.随后也会有2种状态

4.1.DecisionLetterBeingPrepared就是编辑没找审稿人就自脊蔽己决定了,那根据一般经验,对学生来说估计会挂了1)英文太差,编辑让修改。2)内容太差,要拒了。除非大牛们直接被接收。

4.2.Reviewerinvited找到审稿人了,就开始审稿

5.Underreview这应该是一个漫长的等待。当然前面各步骤也可能很慢的,要看编辑的处理情况。如果被邀请审稿人不想审,就会decline,编辑会重新邀请别的审稿人。

6.RequiredReviewsCompleted审稿人的意见已上传,审稿结束,等待编辑决定

7.EvaluatingRecommendation评估审稿人的意见,随后你将收到编辑给你的decision

8.Minorrevision/Majorrevision这个时候可以稍微庆祝一下了,问题不大了,因为有修改就有可能。具体怎么改就不多说了,谦虚谨慎是不可少的。

9.RevisionSubmittedtoJournal又开始了一个循环。

10.Accepted恭喜了

要是等不及了,就直接emaileditor。


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

原文地址: http://outofmemory.cn/yw/12304544.html

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

发表评论

登录后才能评论

评论列表(0条)

保存