我有一个非常烦人的问题。。。
我必须能够从微控制器将一些结构中的文本显示到LCD显示器上。
这些是受影响的区域:
struct menu_id {
char id;
char menu[11];
char submenu;
};
void main (void){
struct menu_id mainmenu[5] = {
{0, "CHNL1", 1},
{0, "CHNL2", 2},
{0, "Mal Codes", 3},
{1, "CHNL1...", 0},
{2, "CHNL2...", 0},
};
print(mainmenu[0].id, mainmenu[0].menu);
}
void print (char line1, char line2)
{
char temp[11];
LCD_Register_Com(); //Set to Command Register
OutputChar(LCD_Line0); //Line 0,0
LCD_Register_Data(); //Set to Data Register
sprintf(temp, "%c", line1);
OutputString(temp);
LCD_Register_Com(); //Set to Command Register
OutputChar(LCD_Line1); //Line 1,0
LCD_Register_Data(); //Set to Data Register
sprintf(temp, "%c", line2);
OutputString(temp);
}
每次我试图构建代码时,它都会抛出以下错误Main_Test.c:108:警告:当我调用打印函数"print(mainmenu[0].id,mainmenu[0].menu);".时,指针非法转换为整数
任何帮助都将不胜感激。
谢谢。
void print (char line1, char line2)
更改为
void print (char line1, char* line2)
和
sprintf(temp, "%c", line2);
至
sprintf(temp, "%s", line2);
带
mainmenu[0].menu
您正在向函数传递一个字符串而不是字符。
struct menu_id {
char id;
char menu[11]; <- string
char submenu;
};
在函数声明void print (char line1, char line2)
中,line2
的类型应为char *
,因为菜单是字符数组