本帖最后由 hzf924999023 于 2017-3-22 16:46 编辑
void TOHEX(u8 num)//转换成16进制
{
u8 strbuffer[10];
if(num>15){sprintf((char*)strbuffer ,"%X" ,num);}//显示16进制保留2位}
else if(num<=15){sprintf((char*)strbuffer ,"%02X" ,num);}
USART_SendData(USART1, strbuffer[0]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送完成
USART_SendData(USART1, strbuffer[1]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送完成
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
key=Can_Receive_Msg(canbuf_R);//收到数据标志
if(key)//接收到有数据
{
printf("
CAN接收:
");
LCD_Fill(0,270,280,310,WHITE);//清屏
for(i=0;i<key;i++)
{
if(i<8)LCD_ShowxNum(0+i*25,270,canbuf_R,2,16,0X80,16); //显示数据
else LCD_ShowxNum(0+(i-4)*25,290,canbuf_R,2,16,0X80,16); //显示数据
TOHEX(canbuf_R);发送给串口,做监视用
}
printf("
");
key=0;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>