|
50黑幣
使用stm32c8t6最小系統板,連接外部時鐘模塊,讀取外部時鐘模塊的時間數據(16進制數據),將得到的時間數據從串口發回到串口助手,但是在串口助手上16進制顯示正常,非16進制顯示就是框框,如圖,代碼如下,怎樣顯示正常的時間
if(inquiries_mewtime_STA!=0)//發送時間問詢指令
{
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);//發送時間指令
UART1SendByte(hour);UART1SendByte(minute);UART1SendByte(second);//發送時間指令
delay_ms(1000);
inquiries_mewtime_STA = 0;//發送時間問詢指令復位
}
其中的UART1SendByte如下
/*發送一個字節數據*/
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, 下載次數: 31)
下載附件
2022-7-31 19:05 上傳
-
2.png
(1.58 KB, 下載次數: 40)
下載附件
2022-7-31 19:05 上傳
最佳答案
查看完整內容
如果只是串口通訊
ASCII用sprintf函數簡單char k[12];//數組長度自己根據要顯示多少位調整
unsigned char a,i=0;
sprintf(k,"%d",dat);
for(a=0;k[a]!='\0';a++)
{
UART1SendByte(Page,Start_SEG,k[a]); //發送一個字節
}
|