自昊芯推出專題講解SCI串口通訊奇偶校驗,分為兩期講解,上期主要講解標(biāo)準(zhǔn)SCI模式下的奇偶校驗,本期主要講解增強FIFO模式下的奇偶校驗。
HX2000系列SCI模塊與中斷框圖如下,可通過SCICCR[PARITYENA]使能,啟動奇偶校驗;采用SCICCR[PARITY]選擇,使用奇或偶校驗,對每個字符增加一個額外的校驗位,以校驗收發(fā)數(shù)據(jù)的二進制碼中“1”的個數(shù),校驗收發(fā)數(shù)據(jù)的一致性;FIFO模式下校驗原理與標(biāo)準(zhǔn)模式一致,但收發(fā)數(shù)據(jù)校驗位不一致時,僅置位SCIRXBUF[SCIFFPE]輸出錯誤信號。
由此設(shè)計SCI串口增強FIFO通信校驗實例:采用SCI與串口CH340,通過串口調(diào)試助手,向CPU發(fā)送任意一組四字節(jié)數(shù)據(jù),CPU接收所發(fā)送的數(shù)據(jù),通過按鍵控制,選擇奇或偶校驗,校驗收發(fā)數(shù)據(jù)的一致性,硬件連接如下圖所示:
基于以上分析,在CDK上開發(fā)SCI串口增強FIFO通信校驗,代碼包括:SCI GPIO外設(shè)引腳配置,SCI增強FIFO功能與校驗配置程序,發(fā)送、接收與校驗程序,主程序調(diào)用執(zhí)行。主要代碼如下:
1.intmain(void) 2.{ 3./*初始化系統(tǒng)控制*/ 4.InitSysCtrl(); 5./*初始化內(nèi)存控制寄存器,使能內(nèi)存流水線模式*/ 6.InitFlash(); 7./*初始化串口通信的GPIO口:GPIO28: SCIRXDA,GPIO29: SCITXDA*/ 8.InitSciGpio(); 9. 10./*初始化LED,用于指示奇偶與幀格式校驗錯誤*/ 11.InitLED(); 12./*初始化key按鍵,用于控制奇偶校驗?zāi)J竭x擇*/ 13.InitKEY(); 14. 15./*關(guān)閉PIE中斷*/ 16.InitPieCtrl(); 17./*清除中斷標(biāo)志位*/ 18.IER=0x0000; 19.IFR=0x0000; 20./*初始化PIE中斷向量表*/ 21.InitPieVectTable(); 22. 23.EALLOW; 24./*中斷向量表入口地址SCIRXINTA,指向執(zhí)行接收中斷、校驗?zāi)J竭x擇與程序*/ 25.PieVectTable.SCIRXINTA=&sci_rx_isr; 26.EDIS; 27. 28./*打開相應(yīng)的PIE中斷線*/ 29.IER|=M_INT9; 30./*PIEGroup9,SCIRXINTA*/ 31.PieCtrlRegs.PIEIER9.bit.INTx1=1; 32. 33./*SCI增強FIFO配置:含奇偶校驗*/ 34.Scia_Config(9600); 35./*打開全局中斷*/ 36.EINT; 37.for(;;) 38.{ 39.} 40.return0; 41.}
CDK上開發(fā)SCI串口增強FIFO通信校驗程序,編譯結(jié)果為:
編譯通過后,就可開始調(diào)試了,調(diào)試后,可通過串口調(diào)試助手查看發(fā)送與接收到的數(shù)據(jù):
收發(fā)數(shù)據(jù)校驗位不一致時,通過SciaRegs.SCIRXBUF.SCIFFPE置位輸出錯誤信號:
-
cpu
+關(guān)注
關(guān)注
68文章
10804瀏覽量
210824 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
6808瀏覽量
88743 -
fifo
+關(guān)注
關(guān)注
3文章
386瀏覽量
43492 -
串口通訊
+關(guān)注
關(guān)注
1文章
258瀏覽量
24812
原文標(biāo)題:芯教程|平頭哥助力昊芯HX2000系列芯片專題SCI串口通訊奇偶校驗(二)SCI增強FIFO
文章出處:【微信號:HAAWKING2019,微信公眾號:中科昊芯】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論