|
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)
-
2.png
(1.58 KB, 下载次数: 40)
最佳答案
查看完整内容
如果只是串口通讯
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]); //发送一个字节
}
|