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_ENScibRegs.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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)