于昨天终于回家啦~按照计划准备工作就绪,下面就要正式开始学习啦~
一开始不用太难,先玩玩儿LCD和LED吧。
IAR开发环境安装的步骤:软件都在光盘上,先装第二个文件夹EWARM压缩包里的IAR
EWARM,然后再装第一个文件夹里的补丁、例程和第三方驱动程序,之后就可以插上USB直接用啦~
第一次烧程序的时候IAR报错,说是找不到设备。我晕~
检查了一下应该是USB口的问题,换了一个口就好了。(可能是我家的老电脑前置的USB有1.1的)
编译,连接,下载例程之后,我就把例程简单改了改,用了LCD.c里的u8 LCD_DrawString(u8 Xpage, u8
YCol, u8 *c, u8
length)这个函数,想循环显示一些字幕。结果它的延时函数太短不说,写字符串的函数也写得很垃圾,明明是写字符串,那变量自然应该是字符类型,那你说定义成u8也可以,但至少应该是ASCII码转换显示吧...结果可好,输入个A给我显示J。
再查LCD.c的预定义数组,果然显示译码数组不是按照ASCII码定义的,只好自己动手改啦~
/*******************************************************************************
* Function Name : LCD_DrawString
* Description : draw a string of length at
certain postion
* Input :
Xpage -- postion of page
YCol -- postion of colomn
c -- pointer to the string to be displayed
length -- length of string
* Output : None
* Return : 0 --
failure
1 -- success
*******************************************************************************/
u8 LCD_DrawString(u8 Xpage, u8 YCol, u8 *c, u8 length)
{
u8 len = length;
u8* pOffset = c;
u8 temp=*c;
if ((128-YCol)<8*length)
return 0;
else
{
while(len--)
{
temp=*pOffset;
if
((temp>='0')&&(temp<='9')) temp=temp-'0';
if
((temp>='a')&&(temp<='z')) temp=temp-'a'+30;
if
((temp>='A')&&(temp<='Z')) temp=temp-'A'+56;
LCD_DrawChar(Xpage, YCol, temp);
YCol +=8;
pOffset++;
}
return 1;
}
}
红色的就是改动部分,其实就是改了一下偏移地址,没啥技术含量,只是为了用起来方便。
LCD还不错,虽然看着小,但怎么说也是12864,不是盖的~问题是...好像没有中文字库...
恩,就这些吧,先去吃饭~啦啦~