- 打卡等级:以坛为家III
 
				- 打卡总天数:661
 
				
				
				- 最近打卡:2025-11-04 07:56:51
 
				  
  
荣誉版主 
 
	- 积分
 - 4485
 
 
 
 
 | 
 
这位朋友你好! 
如果A[0][0]里面的数据是0x05F0, 首先如果是一个2字节的数据, 常言是无符号短整型数据. 
那么,它的十进制数值确实就是1520. 
那么如果要想让它以16进制的形式显示, 可以利用标准C语言中的格式化语句,就是sprintf()函数. 
具体是这样的: 
先定一个字符串变量, 比如: 
char S[16];                         //长度为16个字节的字符串S. 大于你要显示的位数即可.. 
再把一个0x05F0的数据, 格式化地转到字符串S中去, 
sprintf(S,"%04X",A[0][0]);   //以"05F0"的格式显示 
最后显示这个字符串就好啦.   比如: 
LCD_A16(10,10,S,15,0,4);   //这样就在屏幕的x=10,y=10坐标处开始显示"05F0"了.4个字符. 
更进一步的理解:    
这 "%04X",就是格式化指令: 
%  后说明将要显示的变量所占的位置,  
04  表示4个字符, 前面有0,表示前导0要显示的 
X   表示是16进制格式(大写) 
如果把"%04X"写成"%4X", 那么前导0熄灭了. 就是显示  5F0, 也占4字符宽度位置, 不过前面是用空格填充的. 
如果想显示: A[0][0]=0x05F0, 上述语句可以这样写: 
sprintf(S,"A[0][0]=0x%04X",A[0][0]);   //这种情况更常用和实用. 
LCD_A16(10,10,S,15,0,14);   //这样就在屏幕的x=10,y=10坐标处开始显示"A[0][0]=0x05F0",一共14字符. 
 
这样说,清楚吗? |   
 
 
 
 |