日志档案

发表于 2008-6-18 12:42:35

41

标签: 万利  STM32板  快速上手  

[原创]万利STM32板快速上手

对于出厂的万利STM32板,里面已经下载了一个演示程序,
我们直接上电就可以运行它了。需要注意的是板上有两个
USB口,左边(串口朝上)的一个是ST-LINK的,右边的是
STM32的USB口。通过CN2来选择谁供电,CN2在ST-LINK的
USB口旁边。通常我们调试时将CN2连接到ST-LINK,这样
板子就可以通过ST-LINK供电了。如果是非调试运行带USB
的程序,则将CN2连接到USB端,这样可以通过USB口供电。
程序运行后,你可以按动各个开关,看看板子的具体反映。
可以设置为显示ADC的值,这时转动那个兰色的电位器VR1
可改变电压值。

靠近LCD的两个黄色的跳线冒JP3和JP4四控制BOOT1和BOOT0
的。我们通常选择用FLASH启动,设置JP4为0,JP3不用管。
如果要从内部SRAM启动,则设置为JP3→1,JP4→1。如果要
通过串口进行ISP,则设置为JP3→0,JP4→1。

好了,运行了一下测试程序,爽了一把之后,我们就要自己
来写程序了。首先我们要安装开发环境IAR。打开光盘中的
IAR EWARM,解压CD-EWARM-KS-442A.zip,然后进入,运行
autorun.exe,选择Install IAR Embedded Workbench安装
开发环境,在出现的欢迎界面中,还是选择Install IAR
Embedded Workbench,然后按照提示,一步步安装即可。

对于ST-LINK,如果没有安装驱动程序的话,在IAR中是找不
到的,所以我们需要安装ST-LINK的驱动。在未安装驱动之
前,连接上ST-LINK,会在我的电脑中增加一个移动磁盘,
里面有一些文件。这个U盘是只读的,不能写。如果你看到了
磁盘,请不要怀疑你插错了USB口,ST-LINK的确会增加一个
磁盘设备的,并且安装驱动以及以后的调试过程中,它依然
还是存在的。安装驱动,就是进入EWARM_Driver,运行
installSTLink.exe即可。

然后,我们再来安装开发板提供的例子。进入EK BOARD\EKSTM32F
目录,运行EKSTM32F_examples.exe,选择合适的目录,安装之。

然后我们启动IAR,从刚刚安装的例子中打开一个工程,例如
Manley\EKBoard\EKSTM32F\LCDDemo(lcd+led+buttom)\LCDDemo\
project\EWARM\LCDDemo.eww,然后我们点击编译,再点击debug,
就会出现一个下载和编程FLASH的对话框,下载完成后,再点击
Go,就可以全速运行了,这时我们可以看到LCD上显示的字。按下
KEY2可以让LED亮,按下KEY3可以让LED灭。点击Stop Debugging
按钮,停止调试。

接下来我们就在这个程序的基础上,增加一个流水灯的功能。
LED是连接在PORTC4、5、6、7上的。使用LED之前应该先初始化这些
IO口,不过我们所打开的例子已经有初始化代码了,所以我们不用
写。直接在主循环中增加控制LED的代码即可。我们直接调用库函数
实现LED的控制:GPIO_SetBits和GPIO_ResetBits两个函数。高电平
时LED亮,使用GPIO_SetBits设置相应的位即可。

打开main.c,然后找到main函数,在while(1){下面增加如下代码:

    static u32 i="1";
    switch(i)
    {
      case 1:
        GPIO_ResetBits(GPIOC, GPIO_Pin_4); //关LED5
        GPIO_SetBits(GPIOC, GPIO_Pin_7);  //开LED2
      break;
      case 2:
        GPIO_ResetBits(GPIOC, GPIO_Pin_7); //关LED2
        GPIO_SetBits(GPIOC, GPIO_Pin_6); //开LED3
      break;
       case 3:
        GPIO_ResetBits(GPIOC, GPIO_Pin_6); //关LED3
        GPIO_SetBits(GPIOC, GPIO_Pin_5); //开LED4
      break;
       case 4:
        GPIO_ResetBits(GPIOC, GPIO_Pin_5); //关LED4
        GPIO_SetBits(GPIOC, GPIO_Pin_4);  //开LED5
        i="0";
      break;
      default :
        i="0";
      break;
    }
    i++; //切换到下一个灯

然后重新编译,调试,就可以看到我们的流水灯走起来了,
每个灯亮的时间大概在1秒左右。你可以按照自己的想法,
来玩更多的花样~~~圈圈在这里就不罗嗦了。

另外,还有ADC、串口、USB的例子等,大家都可以跑一跑,
然后自己来改一改程序。下面这两个是圈圈拿USB摇杆那个
例子改的USB MIDI键盘和USB HID设备,供大家学习参考。
http://blog.ednchina.com/computer00/123111/message.aspx
http://blog.ednchina.com/computer00/123115/message.aspx

 

看了之后记得点一下左上角的“顶一下”,支持一下圈圈,

给圈圈投一票,谢谢了!

系统分类: 单片机   |   用户分类: STM32   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(3123)    回复(15)  

投一票您将和博主都有获奖机会!

  • dogcome

    2008-6-20 9:06:08

    顶圈圈大大!能不能上传万利的Demo程序!我也买了块EK-stm32,但附带的光盘我不能读取!上网找的都是MDK啊。连万利的主页也没有!SO,麻烦一下。。。

  • dogcome

    2008-6-20 16:42:20

    不用麻烦圈圈了,已经找到了!再顶一下!

  • myhunter800

    2008-6-25 10:00:39

    圈圈,您好,我是ST32的新手,我看了你的快速上手的文章,试了一下,可以跑起来了,现在试USB demos的时候没相应,想问一下是否要对跳线作一些调整?我的步骤如下: 1。下载其中一个USB demos,点击编译,再点击debug,出现一个下载和编程FLASH的对话框,下载完成,点击Go,按按键,遥杆都看不到有什么相应。 2。把CN2跳线接到usb段,旁边的红色指示灯就灭了,按按键也没相应。 请看一下是否我有些地方忽略了。谢谢!

  • 彩云

    2008-6-25 14:37:53

    学习一下

  • computer00

    2008-6-25 21:14:59

    你的也是万利的那块板子吗?注意USB相关跳线的设置。好象总共有3个吧,一个是控制USB上拉电阻的,有一个是另两个是控制USB线是否连接的。你检查下。另外,先运行程序,再来连接USB的线。

  • orchid123

    2008-6-26 10:10:06

    久闻大名啊

  • zzh-173@163.com

    2008-6-26 10:35:00

    学习中

  • sailing

    2008-6-26 11:46:31

    写得不错

  • xchinasl2008

    2008-6-26 13:13:25

    呵呵 得好好学习了

  • ruoxian

    2008-7-1 11:02:45

    羡慕!!

  • computer00

    2008-7-14 10:59:16

    把这个帖顶上去,希望大家也快点玩起STM32来~~~

  • jizzll

    2008-7-14 23:23:57

    来了

  • lpfvip

    2008-7-26 23:00:38

    很好。学习中

  • dandongshen

    2008-8-28 10:08:37

    以前怎么没找到你呢,呵呵。请教一下,万利EK-STM32板里面已经下载的演示程序是不是在FLASH中的?

  • dandongshen

    2008-8-28 10:08:59

    以前怎么没找到你呢,呵呵。请教一下,万利EK-STM32板里面已经下载的演示程序是不是在FLASH中的?