博客首页 | 排行榜 |

wolaiye945的博客

我的STM32F学习之路

个人档案
博文分类
第一个程序  2009-01-19 12:22

于昨天终于回家啦~按照计划准备工作就绪,下面就要正式开始学习啦~
一开始不用太难,先玩玩儿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,不是盖的~问题是...好像没有中文字库...
恩,就这些吧,先去吃饭~啦啦~

类别:心得体会 |
上一篇:STM相关手册 | 下一篇:IAR EWARM环境配置手册
以下网友评论只代表其个人观点,不代表本网站的观点或立场