Re: UART傳輸與接收問題
|
||||
---|---|---|---|---|
資深會員
|
EUSART_Write(uart_tb[k]);
這行下面需多一個檢查TXREG是否清空 while(!TXSTAbits.TRMT); 你沒檢查發送狀態就是會被後面的蓋過去。 而且你TX程式也很怪 應該是要
while(1)
發表於: 2021/2/3 22:41
|
|||
|
Re: UART傳輸與接收問題
|
||||
---|---|---|---|---|
版主
|
看了你的十進制及 ASCII Code 的轉換覺得怪怪的。
參照:
建議你將這段轉換實際跑一下,利用斷點方式檢查一下轉換後的 uart_tb[n] 的值為何? 參考一下底下將 16 進制轉成 10 十進制的顯示資料,自己再加上 0x30 變成可顯示的 ASCII 的數字: DisplayDigit3((CSM_ever_Freq/100)); //將 16 進制的值先除以 100 得到百位數。 顯示百位數 CSM_ever_Freq=CSM_ever_Freq%100; // 計算剩下的餘數值,並回填回去 DisplayDigit4(CSM_ever_Freq/10); // 計算十位數 CSM_ever_Freq=CSM_ever_Freq%10; // 計算餘數找出剩下的個位數 DisplayDigit5(CSM_ever_Freq); // 顯示個位數
發表於: 2021/2/4 15:03
|
|||
|
Re: UART傳輸與接收問題
|
||||
---|---|---|---|---|
高級會員
|
感謝Dark大跟版大的回覆
真的是TX程式的問題,多加一行while(!TXSTAbits.TRMT);,問題就改善了。 又學到一課,太棒了
發表於: 2021/2/8 8:24
|
|||
|