|
50黑幣
使用stm32c8t6最小系統(tǒng)板,連接外部時鐘模塊,讀取外部時鐘模塊的時間數(shù)據(jù)(16進制數(shù)據(jù)),將得到的時間數(shù)據(jù)從串口發(fā)回到串口助手,但是在串口助手上16進制顯示正常,非16進制顯示就是框框,如圖,代碼如下,怎樣顯示正常的時間
if(inquiries_mewtime_STA!=0)//發(fā)送時間問詢指令
{
second=Read1307(0x00);//問詢秒時間指令
minute=Read1307(0x01);//問詢分時間指令
hour=Read1307(0x02);
week=Read1307(0x03);
day=Read1307(0x04);
month=Read1307(0x05);
year=Read1307(0x06);
UART1SendByte(year);UART1SendByte(month);UART1SendByte(day);//發(fā)送時間指令
UART1SendByte(hour);UART1SendByte(minute);UART1SendByte(second);//發(fā)送時間指令
delay_ms(1000);
inquiries_mewtime_STA = 0;//發(fā)送時間問詢指令復位
}
其中的UART1SendByte如下
/*發(fā)送一個字節(jié)數(shù)據(jù)*/
void UART1SendByte(unsigned char SendData)
{
USART_SendData(USART1,SendData);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
USART_ClearFlag(USART1,USART_FLAG_TC);
}
|
-
1.png
(2.62 KB, 下載次數(shù): 31)
下載附件
2022-7-31 19:05 上傳
-
2.png
(1.58 KB, 下載次數(shù): 40)
下載附件
2022-7-31 19:05 上傳
最佳答案
查看完整內(nèi)容
如果只是串口通訊
ASCII用sprintf函數(shù)簡單char k[12];//數(shù)組長度自己根據(jù)要顯示多少位調(diào)整
unsigned char a,i=0;
sprintf(k,"%d",dat);
for(a=0;k[a]!='\0';a++)
{
UART1SendByte(Page,Start_SEG,k[a]); //發(fā)送一個字節(jié)
}
|