1、YYYtech1STM32 第一个例子建立文件夹:GPIO_TEST 存放整个工程项目在该项目文件夹下建立子文件夹存放不同类别的文件:Obj:存放工程文件Out:存放编译输出文件Sorce:存放源代码文件打开 KEIL3:这个时候显示的应该是上次使用过的工程。新建工程:把该工程存放在刚刚建立的 Obj 子文件夹下:YYYtech2点击保存后弹出选择器件窗口,选择 STM32F103RB 器件(选择使用器件型号)点击确定后弹出:YYYtech3这个时候选择“是” ,工程建立成功:工程管理:(这个对于项目的运行没有必要性,只是为了方便项目的管理)在工程上右键,选择YYYtech4弹出如下工程文件管
2、理窗口:经过操作,建立如下文件夹有备使用,这个可以根据个人编程习惯处理。YYYtech5新建源文件:保存:保存在 Sorce 子文件夹下,注意文件名为 gpio_test.c,一定要有 C 后缀。把该文件添加到工程:YYYtech6编写代码:/*/ 作者:JingYong/ 时间:2007/12/14/*/*main 文件, GPIO 操作,完成最简单的 IO 操作实验,就是控制 LED 灯4 个 LED 分别对应 PC 的 6、 7、8、9 引脚。4 个 LED 流水显示*/#include “stm32f10x_lib.h“GPIO_InitTypeDef GPIO_InitStructu
3、re;void LED_Init(void)RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOC, YYYtech7void LED_TurnOn(u8 l
4、ed)void Delay(vu32 nCount)for(; nCount != 0; nCount-);main()/RCC_Configuration();LED_Init();while(1)GPIO_SetBits(GPIOC, GPIO_Pin_9);Delay(0x8ffff);GPIO_ResetBits(GPIOC, GPIO_Pin_9);Delay(0x8ffff);GPIO_SetBits(GPIOC, GPIO_Pin_10);Delay(0x8ffff);GPIO_ResetBits(GPIOC, GPIO_Pin_10);Delay(0x8ffff);GPIO_S
5、etBits(GPIOC, GPIO_Pin_11);Delay(0x8ffff);GPIO_ResetBits(GPIOC, GPIO_Pin_11);Delay(0x8ffff);GPIO_SetBits(GPIOC, GPIO_Pin_12);Delay(0x8ffff);GPIO_ResetBits(GPIOC, GPIO_Pin_12);Delay(0x8ffff);注意:在这里用到了 RCC 和 GPIO 的库函数,所以必须把这两个函数加入工程。YYYtech8YYYtech9关于固件库函数在文件夹:C:KeilARMRV31LIBSTSTM32F10x 为了不在操作过程中避免改变
6、 KEIL 文件夹下的库函数,可以固件函数库放到其他文件夹下,如:E:jyworkSTMWxlStm32LABlibrary其中 stm32f10x_lib.c 文件是整个库的一些定义,是必须要的。加入后的工程为:这里,如果有的人觉得不知道使用了哪些库函数,不晓得添加哪些库文件进入工程,有个最简单的办法就是添加所有的固件库函数到工程,为了方便可以直接添加:C:KeilARMRV31LIBST 路径下的 STM32F10xR.LIB 文件进入工程:在编译之前还应该对工程选项做写设置,当然,这些设置也可以在工程建立后马上进行。打开选项窗口:YYYtech10最上面的第一个标签是器件选择:由于在工程建立的时候已经进行了器件的设定,这里不用操作。但是如果想改变器件,可以在这里操作。第二个标签为目标设置,这里正确的设置为可以采用默认。