嵌入式系统开发 第三周作业

1. 安装mdk5软件和stm32包

安装mdk5	
    1 按照pdf安装mdk

arm架构下的kafka安装 arm1.2安装_#include


2 离线模式安装pack

arm架构下的kafka安装 arm1.2安装_双核_02

arm架构下的kafka安装 arm1.2安装_#include_03


arm架构下的kafka安装 arm1.2安装_双核_04


arm架构下的kafka安装 arm1.2安装_#include_05


其中一个pack,报错翻译为不支持包架构版本“1.4.0”。最大支持的版本是’1.2。请更新到的更新版本,所以如有需要此pack的请自行升级MDK的版本,但对于初学者stm32 pack1.0.4已经足够。3 mdk5的破解

必须以管理员的身份进入keil否则会添加license错误

进入license management页面复制cid

arm架构下的kafka安装 arm1.2安装_嵌入式_06


打开keil generic keygen ,之前版本破解日期为2020,改为2032

arm架构下的kafka安装 arm1.2安装_双核_07


arm架构下的kafka安装 arm1.2安装_arm架构下的kafka安装_08


破解完成

详细安装请参照

2. LED闪烁

https:///2414466154/seven 下载工程文件

arm架构下的kafka安装 arm1.2安装_arm架构下的kafka安装_09


新建工程

跟工程文件同一目录

arm架构下的kafka安装 arm1.2安装_#include_10


关闭该界面,不用keil所带的

arm架构下的kafka安装 arm1.2安装_嵌入式_11


将文件工程名改成stm_led.STM32F103CB.

添加文件

arm架构下的kafka安装 arm1.2安装_#define_12


我这里有点小问题不能添加文件夹

arm架构下的kafka安装 arm1.2安装_arm架构下的kafka安装_13


arm架构下的kafka安装 arm1.2安装_嵌入式_14


然后再C/C++中define中填入USE_STDPERIPH_DRIVER, STM32F10X_MD

arm架构下的kafka安装 arm1.2安装_双核_15

添加include path。

arm架构下的kafka安装 arm1.2安装_#include_16

点击output,勾选生成hex

arm架构下的kafka安装 arm1.2安装_#define_17


arm架构下的kafka安装 arm1.2安装_arm架构下的kafka安装_18


arm架构下的kafka安装 arm1.2安装_#define_19

#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);
#endif

main函数代码如下图所示

#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);
	}
}

结果如下

arm架构下的kafka安装 arm1.2安装_嵌入式_20


proteus仿真

arm架构下的kafka安装 arm1.2安装_嵌入式_21

双击 STM32F103R6 芯片,链接 MDK 生成的 .hex 文件:

arm架构下的kafka安装 arm1.2安装_嵌入式_22


仿真结果如下

arm架构下的kafka安装 arm1.2安装_双核_23

3.C51程序设计和仿真

先前已安装,跳过安装步骤
     
     这个根据开发板使用的 CPU 具体的型号来选择,像是普中 51-双核-A6、普中 51-双核-A7、普中 51-双核-A8、HC6800-EM3 V2.2、HC6800-EM3 V2.2C、HC6800-EM3 V3.0 开发板采用的是 STC89C516 芯片,开拓者、HC6800-ES V2.0、普中 51-单核-A2 使用的是 STC89C52 芯片。但实际上在 KEIL C51 软件内找不到这些芯片类型,但我们可以选择 AT89C51 或者 AT89C52,它们都是 51 内核,软件代码兼容。这里选择 AT89C52,具体操作如下。

arm架构下的kafka安装 arm1.2安装_arm架构下的kafka安装_24

arm架构下的kafka安装 arm1.2安装_嵌入式_25


点击否

然后编写main.c,如上,生成.hex文件。(keil5无法上述操作,仍旧按照keil4)

arm架构下的kafka安装 arm1.2安装_双核_26


arm架构下的kafka安装 arm1.2安装_双核_27

#include "reg51.h"
void main(void)
{
	P0 = 0x0; //点亮P0端口上的LED灯
}

arm架构下的kafka安装 arm1.2安装_#define_28


仿真结果如下

arm架构下的kafka安装 arm1.2安装_嵌入式_29

总结

keyen.exe记得关声音
添加工程时记得添加启动文件
添加路径一定要正确不然会无法找到目录
参考资料