Date:2011.08.18 MADE BY AC
今天在学习C 和 汇编语言的混合编程!!!学习到11点多,很累,所以就没有写思想汇报呢。
Date:2011.08.19 MADE BY AC
1、 LCD显示出现乱码..~~经编译发现有warning:MAIN.C(14): warning C182: pointer to different objects….. 再查看源代码!!!(分别在main.c 和 Interface.h的变量声明)
uchar *pdisplay=psstruct; 和 extern struct Interf_String *psstruct;(结构体是一种用户自定义的数据类型)很明显,数据类型不匹配,LCD乱搞,显示出乱码!!!
总结:当LCD显示乱码的时候,要第一时间考虑数据是否正确!数据错误会导致显示乱码。
2、 傻逼的我碰到傻逼的问题(调试了很久哦,蓦然回首):
INTERFACE.C(82): warning C206: 'WriteCommandLCD': missing function-prototype
INTERFACE.C(82): error C267: 'WriteCommandLCD': requires ANSI-style prototype
经调试发现,原来没有包含头文件!
3、 面对结构体,人生的污点啊,人生的败笔!!!!(过段时间,我一定要把你搞定~亨)
(兄弟们啊,我强烈建议,少把结构体得成员弄成数组,那会很麻烦的,我纠结了很久)
4、 在写字符的时候,请注意数组长度,因为字符长度!=数组长度,数组以”\0”结束,编程要注意这一点,不然,程序乱飞,就惨了,会出现未知错误!!!!(特别是12864的一定要以’’\0”这个结束哦,否侧出错哦,当时,我写的程序就只显示16个字符之后就不显示了,定在那里,然后硬调试也不行,后来发现,,字符'\0'给力了,要添加啊)
5、 调试的时候,你可以设置一个硬件变量,用万用表来观察程序的运行情况!!!(硬件调)
eg: sbit Debug=P1^1; 在相应的函数里面加这么一句:Debug=~Debug;用万用表观察电压的变化即可观察函数是否运行到此处!或者某条语句。
Date:2011.08.20 MADE BY AC
1、假如要用12864等LCD显示“空格和汉字,且超过了16字节的时候…”,请注意空格,会占用半个字,导致显示不出你想要的效果!比如:“请注意空格处的个数”
Intf_SDP[17]={"日期: 11-12-30 "};(错)Intf_SDP[17]={"日期: 11-12-30 "};(对)
关于空格问题:‘uchar Intf_SUP[17]={"单位: 千欧 "};’这条语句不会正常显示,千欧变为‘G’,这是为什么啊?我调试了一个早上,发现,“字节和字=2*n字节”才会正常显示的哦!!!(像前面的单位过后是冒号+两个空格,很明显,这就打破了2n规律“冒号+2个空格=3字节”,那当然显示不出千欧,呢,只能出错呢!乱跳…)
总结:一定要记住哦,要显示时“A字节+B字=2*n字节,且要连续的数据”,否则显示有可能出错哦!!!
1、 这三个编译命令,第一个编译当前活跃文件,第二个生成目标文件,第三个全部编译!!
。。。。。。。。。。。今天就弄到这里,不过还有一个很纠结的调试,就是“关于主程序文件怎么调用外部文件结构体的成员”?这是个很给力的题目,有勇气的兄弟们可以 试试,挑战一下自己!!!!!我调试了两天都还没调试出来呢!!!!!没办法,,菜~~~~