自昊芯推出專題講解SCI串口通訊奇偶校驗,分為兩期講解,上期主要講解標準SCI模式下的奇偶校驗,本期主要講解增強FIFO模式下的奇偶校驗。
HX2000系列SCI模塊與中斷框圖如下,可通過SCICCR[PARITYENA]使能,啟動奇偶校驗;采用SCICCR[PARITY]選擇,使用奇或偶校驗,對每個字符增加一個額外的校驗位,以校驗收發數據的二進制碼中“1”的個數,校驗收發數據的一致性;FIFO模式下校驗原理與標準模式一致,但收發數據校驗位不一致時,僅置位SCIRXBUF[SCIFFPE]輸出錯誤信號。
由此設計SCI串口增強FIFO通信校驗實例:采用SCI與串口CH340,通過串口調試助手,向CPU發送任意一組四字節數據,CPU接收所發送的數據,通過按鍵控制,選擇奇或偶校驗,校驗收發數據的一致性,硬件連接如下圖所示:
基于以上分析,在CDK上開發SCI串口增強FIFO通信校驗,代碼包括:SCI GPIO外設引腳配置,SCI增強FIFO功能與校驗配置程序,發送、接收與校驗程序,主程序調用執行。主要代碼如下:
1.intmain(void)
2.{
3./*初始化系統控制*/
4.InitSysCtrl();
5./*初始化內存控制寄存器,使能內存流水線模式*/
6.InitFlash();
7./*初始化串口通信的GPIO口:GPIO28: SCIRXDA,GPIO29: SCITXDA*/
8.InitSciGpio();
9.
10./*初始化LED,用于指示奇偶與幀格式校驗錯誤*/
11.InitLED();
12./*初始化key按鍵,用于控制奇偶校驗模式選擇*/
13.InitKEY();
14.
15./*關閉PIE中斷*/
16.InitPieCtrl();
17./*清除中斷標志位*/
18.IER=0x0000;
19.IFR=0x0000;
20./*初始化PIE中斷向量表*/
21.InitPieVectTable();
22.
23.EALLOW;
24./*中斷向量表入口地址SCIRXINTA,指向執行接收中斷、校驗模式選擇與程序*/
25.PieVectTable.SCIRXINTA=&sci_rx_isr;
26.EDIS;
27.
28./*打開相應的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上開發SCI串口增強FIFO通信校驗程序,編譯結果為:
編譯通過后,就可開始調試了,調試后,可通過串口調試助手查看發送與接收到的數據:
收發數據校驗位不一致時,通過SciaRegs.SCIRXBUF.SCIFFPE置位輸出錯誤信號:
-
芯片
+關注
關注
455文章
50714瀏覽量
423138 -
fifo
+關注
關注
3文章
387瀏覽量
43648
發布評論請先 登錄
相關推薦
評論