STM32如何从串口缓冲区提取某一个数显示到LCD上???
USART2_RX_BUF有一组10个字节的16进制数据{0X98,0X45,0X80,0X2A,0X00,0X00,0XCB,0X10,0X05,0XAA},我想从其中...
USART2_RX_BUF有一组10个字节的16进制数据{0X98,0X45,0X80,0X2A,0X00,0X00,0XCB,0X10,0X05,0XAA},我想从其中提取{0X80,0X2A}并转换为10进制,然后用LCD_DispStr()函数显示到显示屏上,试了很多方法都错误。
展开
1个回答
展开全部
新开一个函数进行进制转换并输出一个字符串
Fun_Hex2DecStr(int hex, uchar * str_out);
十六进制转十进制的方法,以及+'0'转换为字符的方法,这些基本知识你应该都知道吧。
Fun_Hex2DecStr(int hex, uchar * str_out);
十六进制转十进制的方法,以及+'0'转换为字符的方法,这些基本知识你应该都知道吧。
追问
大哥,16转10的方法是懂,就是不懂该怎么正确提取啊,我写了一个提取代码,但不懂什么情况,运行1分多种就会自动死机了,重新复位又正常,每次都是一分钟死。。。
SZ1=USART2_RX_BUF[4]; //读取缓冲区
SZ2=USART2_RX_BUF[5];
sprintf(HEX,"%02x%02X",SZ1,SZ2);
追答
你需要跟踪确认造成“死机”的原因。说到底你的整个系统设计都有问题,明明有狗的片子居然还能出现“死机”这种情况。如果有操作系统,应该打个日志文件看看出现了什么异常。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询