
对于出厂的万利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。. m& E9 z: c( d c a: x / [$ o6 C6 Y. G Z 好了,运行了一下测试程序,爽一把之后,我们就要自己来写程序了。首先我们要安装开发环境IAR。打开光盘中的IAR EWARM,解压CD-EWARM-KS-442A.zip,然后进入,运行autorun.exe,选择Install IAR Embedded Workbench安装开发环境,在出现的欢迎界面中,还是选择Install IAR Embedded Workbench,然后按照提示,一步步安装即可。 % R5 V9 \5 }# r, {# \. { 对于ST-LINK,如果没有安装驱动程序的话,在IAR中是找不到的,所以我们需要安装ST-LINK的驱动。在未安装驱动之前,连接上ST-LINK,会在我的电脑中增加一个移动磁盘,里面有一些文件。这个U盘是只读的,不能写。如果你看到了磁盘,请不要怀疑你插错了USB口,ST-LINK的确会增加一个磁盘设备的,并且安装驱动以及以后的调试过程中,它依然还是存在的。安装驱动,就是进入EWARM_Driver,运行installSTLink.exe即可。, O* J( x% q: E+ M+ u 9 v, [5 S, R3 I2 u3 E5 ~ 然后,我们再来安装开发板提供的例子。进入EK BOARD\EKSTM32F目录,运行EKSTM32F_examples.exe,选择合适的目录,安装之。 5 d! O, A2 G" _: C2 G 然后我们启动IAR,从刚刚安装的例子中打开一个工程,例如Manley\EKBoard\EKSTM32F\LCDDemo(lcd+led+buttom)\LCDDemo\. k3 v" u( G; n7 x4 j- L project\EWARM\LCDDemo.eww,然后我们点击编译,再点击debug,就会出现一个下载和编程FLASH的对话框,下载完成后,再点击Go,就可以全速运行了,这时我们可以看到LCD上显示的字。按下KEY2可以让LED亮,按下KEY3可以让LED灭。点击Stop Debugging按钮,停止调试。8 P4 B' W2 u1 C) s9 c, N 9 y, u/ T7 [+ R8 |" e. Q& s: C 接下来我们就在这个程序的基础上,增加一个流水灯的功能。LED是连接在PORTC4、5、6、7上的。使用LED之前应该先初始化这些IO口,不过我们所打开的例子已经有初始化代码了,所以我们不用写。直接在主循环中增加控制LED的代码即可。我们直接调用库函数实现LED的控制:GPIO_SetBits和GPIO_ResetBits两个函数。高电平时LED亮,使用GPIO_SetBits设置相应的位即可。, M; w2 H! F2 S9 N6 k, }0 G# `! x & X0 I7 F0 j8 n; \$ I- | 打开main.c,然后找到main函数,在while(1){下面增加如下代码: static u32 i=1; switch(i)' p. F, }7 B7 }8 `. y! h( j { case 1: GPIO_ResetBits(GPIOC, GPIO_Pin_4); //关LED50 `6 K# ?! I$ u$ @. u GPIO_SetBits(GPIOC, GPIO_Pin_7); //开LED2, i) d8 C/ B! c% j& s break;) x5 j9 [8 g! w- h9 y9 J case 2:) A7 V% \$ S6 \7 r' b6 v GPIO_ResetBits(GPIOC, GPIO_Pin_7); //关LED2 GPIO_SetBits(GPIOC, GPIO_Pin_6); //开LED3 break;# Z" l) f/ X5 Y7 L& k% O: a case 3:6 S' D; `! g9 u' u7 h$ l GPIO_ResetBits(GPIOC, GPIO_Pin_6); //关LED36 |# M1 i) _" W, x; z' ] GPIO_SetBits(GPIOC, GPIO_Pin_5); //开LED4" l; I; b; g/ K- z break;+ L& }" x' a: G$ G, j2 @ case 4:5 Z" u- F/ P" `1 z5 e GPIO_ResetBits(GPIOC, GPIO_Pin_5); //关LED4 GPIO_SetBits(GPIOC, GPIO_Pin_4); //开LED5 i=0;( G- F5 n/ C7 Q$ v9 f. J break;% L& |& }+ _# M- U' ~, Z default :8 w8 M2 T- a* t, ]" a! \. F i=0; break; }$ e: S9 u7 n0 u) j4 ? i++; //切换到下一个灯 & J0 G Z9 x+ H7 E- ]# z 7 m4 u& ?" {5 l 然后重新编译,调试,就可以看到我们的流水灯走起来了,每个灯亮的时间大概在1秒左右。你可以按照自己的想法,来玩更多的花样~~~圈圈在这里就不罗嗦了。% ?- ?( \8 y' J9 ~: Y : Q# R, `5 F4 g0 z7 x7 i2 l 出处:computer00 |
RE:万利STM32板快速上手
RE:万利STM32板快速上手