2016年10月15日 | Leave a comment 问题: MDK5 点灯 MDK5与MDK4 差别挺大的,MDK5引进了package + Runtime 的概念 所以可以通过下载对应芯片的package 来快速配置项目 解决: 实现目标,led灯过亮两秒灭两秒 硬件PA.6 接led长脚, led 短脚 接地 新建项目:在资源管理器中创建一个空目录led1,启动 MDK5 ,点菜单 project -> new uVersion project ->目录led1里边 点保存 配置芯片:我们用的是STM32F407VE (如果没有需要使用Pack Installer 安装,下载包www.keil.com/pack/) 配置Runtime (就是要用什么包):就是MDK4中复制 类库那步奏,勾选Device -> StdPheriph Driver -> RCC & GPIO &Framework 及 StdPheriph Driver-> startup 及 device-> cmsis -> core ,点OK。勾选的要全部变成绿色,出现黄色的话注意底下 validation output 额外的组件 创建main.c :在 左侧project 区“ Target 1″ -> “Source Group 1″点左键选”add new item” ,选“c file” 名字为 “main”,内容如下: #include <stm32f4xx.h> void GPIO_Conf(){ GPIO_InitTypeDef G; G.GPIO_Pin= GPIO_Pin_6; G.GPIO_Mode=GPIO_Mode_OUT; G.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&G); } void Delay(unsigned int ms){ int t=12000*ms; while(t--); } int main(void){ SystemInit(); //STMF32F1XX RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//stmf32f4xx GPIO_Conf(); Delay(500); while(1){ GPIO_ResetBits(GPIOA,GPIO_Pin_6); Delay(2000); GPIO_SetBits(GPIOA,GPIO_Pin_6); Delay(2000); }; } 1234567891011121314151617181920212223242526272829 #include <stm32f4xx.h> void GPIO_Conf(){ GPIO_InitTypeDef G; G.GPIO_Pin= GPIO_Pin_6; G.GPIO_Mode=GPIO_Mode_OUT; G.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&G);}void Delay(unsigned int ms){ int t=12000*ms; while(t--);} int main(void){ SystemInit(); //STMF32F1XX RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//stmf32f4xx GPIO_Conf(); Delay(500); while(1){ GPIO_ResetBits(GPIOA,GPIO_Pin_6); Delay(2000); GPIO_SetBits(GPIOA,GPIO_Pin_6); Delay(2000); };} 添加define : 点菜单project -> options for target Target 1 , 点 c/c++ predefined symbols -> defineds 写”USE_STDPERIPH_DRIVER,RTE_DEVICE_STDPERIPH_RCC,RTE_DEVICE_STDPERIPH_GPIO“ 点OK 还需要配置 project -> options for target Target 1 -> debug 中的调试芯片,我这是st-link 点菜单 project -> rebuild all target files 构建 点菜单 flash -> download