2 离线模式安装pack
其中一个pack,报错翻译为不支持包架构版本“1.4.0”。最大支持的版本是’1.2。请更新到的更新版本,所以如有需要此pack的请自行升级MDK的版本,但对于初学者stm32 pack1.0.4已经足够。
3 mdk5的破解 必须以管理员的身份进入keil否则会添加license错误 进入license management页面复制cid 打开keil generic keygen ,之前版本破解日期为2020,改为2032 破解完成 详细安装请参照https://blog.csdn.net/qq_45264808/article/details/108899662?utm_source=app
https://github.com/2414466154/seven 下载工程文件 新建工程 跟工程文件同一目录 关闭该界面,不用keil所带的
将文件工程名改成stm_led.STM32F103CB. 添加文件 我这里有点小问题不能添加文件夹 然后再C/C++中define中填入USE_STDPERIPH_DRIVER, STM32F10X_MD
添加include path。
点击output,勾选生成hex
#include "led.h" void LED_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); }写点灯代码 在新建一个led.h代码如下
#ifndef __LED_H #define __LED_H #include "stm32f10x_gpio.h" #define ON 0 #define OFF 1 #define LedControl(a) if(a) GPIO_SetBits(GPIOB,GPIO_Pin_5); else GPIO_ResetBits(GPIOB,GPIO_Pin_5) void LED_GPIO_Config(void); #endifmain函数代码如下图所示
#include "stm32f10x.h" #include "led.h" void Delay(u32 count) { u32 i=0; for(;i<count;i++); } int main(void) { LED_GPIO_Config(); while(1) { //GPIO_ResetBits(GPIOB, GPIO_Pin_5); LedControl(ON); Delay(1000000); //GPIO_SetBits(GPIOB, GPIO_Pin_5); LedControl(OFF); Delay(1000000); } }结果如下 proteus仿真
双击 STM32F103R6 芯片,链接 MDK 生成的 .hex 文件: 仿真结果如下
点击否 然后编写main.c,如上,生成.hex文件。(keil5无法上述操作,仍旧按照keil4)
#include "reg51.h" void main(void) { P0 = 0x0; //点亮P0端口上的LED灯 }仿真结果如下