void disp_lable_main(void)
{
#if (MODE_FREQ==0)
static INT8U const arr_lable0[]="HV Volt kv";
static INT8U const arr_lable1[]="Frenquence HZ";
static INT8U const *ptr_tip[]={ arr_lable0, arr_lable1};
static INT8U const arr_length[]={sizeof(arr_lable0),sizeof(arr_lable1)};
static INT8U const arr_x[]={2,2,2,22,22,22,22,22,13,22};
static INT8U const arr_y[]={ ROW_HV*8, ROW_FREQ*8};
INT16U i,x,y;
if (f_disp_hv)
{
LCD_Disp_String_8x16_const(2,y,arr_lable0,sizeof(arr_lable0)-1,0);
}
static void Display_Char(INT16U X,INT16U Y,INT8U Character,INT8U Font,INT8U Attribute)
{
INT8U const *ptr;
INT16U i,j,temp,addr,dot_x,dot_y;
addr=(INT16U)AP*Y+X+ADDR_PIC0; /* 显示一区所控制的显示屏行数 */
if (Font==FONT_8X16)
{
dot_x=1;
dot_y=16;
ptr=&char_8x16[Character][0];
我刚刚试过了,你的方法是可以的,但是要是字符中间用空格,再显示字符,好像空格不能实现啊,我想问一下,这是什么原因引起的,我要做的是整个英文的界面显示,有没有更简单的方法实现,这样实现比较麻烦
追答一个正常的字符串规定应该使用\0结束,表示的是null,所以你直接对字符数组赋值成字符串是,编译器会默认给你加上\0
空格就是两个单引号中间留空格呀,或者直接给
不正常的字符串,一个就是用字符单独赋值,一个就是给定字符数组大小恰好等于字符数,没有空间放置\0
一般处理还可以采取for(int i=0;str[i]!='\0';i++)的方式来避免对\0的处理
其实估计是你的LCD_Disp_String_8x16_const函数有问题
我在液晶上显示,每个字符串后面,都会自带一个0,但是我不想要这个0显示出来,不知道怎么处理
追答液晶上显示??下位机?那你要自己无看他的LCD_Disp_String_8x16_const(2,y,arr_lable0,sizeof(arr_lable0)-1,0);函数你具体怎么实现的了