微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > LCD出问题

LCD出问题

时间:10-02 整理:3721RD 点击:
uchar testData[8] = {0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef};
void LCD_LoadChar(uchar user[8], uchar place)
{
        uchar i;
        LCD_Write(LCD_COMMAND,0x40|(place*8));
        for(i=0; i<8; i++)
           LCD_Write(LCD_DATA,user);
LCD_LoadChar(testData[8], 0);
}
为什么错误file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\WML`ZUS$8NCVU(%7M%5VUJI.gif

几处问题:
1)void LCD_LoadChar(uchar user[8], uchar place),去掉8,参数user[8]会当成一个指针,这么做函数根本无从知道数组长度是多少,想要传递数组长度,得另外传递参数。
2)void LCD_LoadChar(uchar user[8], uchar place)在里面又调用自身,结果是无限地调用自身,直到程序死掉。另外,即使你是调用该函数,传递的参数也是错的。前面说了第一个参数会当做指针, 显然你这里的调用传递的不是指针,应这么调用LCD_LoadChar(&testData[8], 0)。
3)变量似乎有点混乱,数组要么就做全局变量在函数内直接使用,要么就传递数组的指针间接使用,不要二者同时使用。

谢谢

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top