工欲善其事必先利其器,提及stm32程序我们先不谈,我们先从mdk开始今天的编程之路。 MDK 是 Microcontroller Development Kit的缩写,是ARM公司出品的,是针对ARM的处理器,尤其是Cortex-m内核处理器的最佳开发工具。 Stm32是使用了ARM内核的嵌入式单片机,拥有这高性能,低成本和低消耗的特点。所以我们今天使用它。
参考连接:https://blog.csdn.net/weixin_42625444/article/details/103262415 1、打开MDK5.10安装包,点击next进入下一步。点同意对勾,继续安装, 2、选择安装目录和pack目录,点击next。 3、输入姓名、公司和e-mail,继续安装。 4、进入安装进度条。 5、点击Finsh完成,进入pack installer界面。 打开pack installer可能会产生如下情况,但对今天编程不影响,可以忽略。我网上也没找见解决方法,希望大佬指点。 接着下载安装 CMSIS 和 STM32F103的支持库。 6、打开keil uVision5程序,程序是试用版本,可以选择用keygen破解。 在FIle中License Mangement,使用keygen用CID编号获取Lic,效果如下:
1、点击Project中的New uVision Project,选择目录起名字。 2、选择芯片类型。 3、完成文件创建,管理文件图图标就是下图所指地方。 文件设置目录有user放启动文件,主函数,中断文件。obj过程文件,system系统文件,hardware硬件。 双击user找到startup_stm32f10x_hd.s文件,而文件在stm32的官方开发包中需要下载。位置为:下载文件\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\iar中。 在user中新建main.c文件。 随便找一个代码: 参考代码:STM32底座实验指导书第三章3.2
#include"stm32f1xx_hal.h" #include"stm32f1xx.h" #define LED_GPIO_PORT GPIOA #define LED1 GPIO_PIN_5 //LED1 #define LED2 GPIO_PIN_12 //LED2 #define LED1_ON() HAL_GPIO_WritePin(LED_GPIO_PORT,LED1,GPIO_PIN_RESET) // ? ? LED1 #define LED2_ON() HAL_GPIO_WritePin(LED_GPIO_PORT,LED2,GPIO_PIN_RESET) // ? ? LED2 #define LED1_OFF() HAL_GPIO_WritePin(LED_GPIO_PORT,LED1,GPIO_PIN_SET) // ? ? LED1 #define LED2_OFF() HAL_GPIO_WritePin(LED_GPIO_PORT,LED2,GPIO_PIN_SET) // ? ? LED2 extern void LED_Init(void);//LED ??? int main(void) { HAL_Init(); //??? HAL ? LED_Init(); //??? LED while(1) { LED1_ON(); //?? LED1 delay_ms(500); //?? 500ms LED2_ON(); //?? LED2 delay_ms(500); //?? 500ms LED1_OFF(); //?? LED1 delay_ms(500); //?? 500ms LED2_OFF(); //?? LED2 delay_ms(500); //?? 500ms } }如下图所示: 4、选择project中的options for Target 点击。选择output,在Create HEX File前面画勾。HEX文件在后面的电路仿真有用。 然后点击运行。成功的完成第一个文件编译!
