之前单片机刚入门开始学89C51,开发环境为keil4,后来升级到keil5,现在准备学STM32,STM32开发环境为keilMDK,于是找到keilMDK安装包下载之后,才发现他和Atmel、STC的单片机不兼容,于是在百度中寻求让他们兼容的方法,有人说什么更改TOOL文件里的东西,本人尝试了一下也没成功。最近又看到一种方法,十分简单,亲测已经成功完成兼容。于是将此方法写在这里。
1、首先准备普通keil的版本(即C51的,不是MDK版本的),然后按照安装步骤进行安装激活(安装并且进行注册机注册),安装路径任意,但是要记住这个安装路径,因为下一步要用到。
2、第二步进行keilMDK的安装。这是关键性的一步,这一次选择的安装路径必须和上一步的普通keil版本的安装目录一样,一定要一样,一定要一样,一定要一样(重要的事情说三遍)。安装好之后,同样进行注册机注册即可完成。安装好之后的文件夹如图所示
这个文件夹里面就是同时有普通的keil和keilMDK的内容。到这里就完成了兼容。
3、这个时候已经实现keil5 MDK中传统C51与STM32互相兼容了。打开keil,建立工程如图所示
其中如果选用STM32的话,就选择第一个选项—Software Packs;如果想用Atmel公司的芯片呢,就选用第二个选项—Legacy Device Databace[no RTE],如果想选用STC公司的芯片呢,就选用第三个选项—STC MCU Databace。然后就再继续根据自己具体所需要的芯片型号进行进一步的选择即可开始编写程序了。
注意事项:我这里是已经把STC的头文件给添加到keil里面了,如果你没有添加STC头文件的话,在刚才的选芯片的那一步里面就不会出现第三个选项—STC MCU Databace了,具体怎么把STC头文件添加到keil里面,网上随便一搜就可以找到相应的方法了,也很简单,在这里我就不再多说了。我在这里主要是介绍一下keil MDK怎么兼容STM32和传统C51单片机。
这是我实际学习过程中遇到的问题,今天在这里和大家分享一下。
关键字:keil5 MDK软件 C51 STM32 相互兼容
引用地址:
keil5 MDK软件中传统C51与STM32相互兼容的方法
推荐阅读最新更新时间:2024-03-16 16:16
STM32流水灯的几种实现方法
#include “stm32f10x.h” void RCC_Configuration(void);//2 void GPIO_Configuration(void);//GPIO void Delay(u32 count) { u32 i=0; for(;i count;i++); } int main(void) { RCC_Configuration();//3 LED_Init(); while(1) { GPIO_SetBits(GPIOA,GPIO_Pin_0);//第一灯亮 Delay(800000); //延时 GPIO_ResetBits(GPIOA,GPIO_Pin_0); //第一灯灭
[单片机]
stm32学习笔记(1):实时时钟RTC
太久没写过像样的文,先从学习笔记开始,之后逐渐补充这个月以来的单片机学习笔记。 -------------------------------------我是分界线你看不见------------------------------------------- 1.RTC简介 (关于stm32的实时时钟RTC的介绍,参考手册甚是详细,自可参考,编程时不懂查阅即可,不必死背硬记。) STM32的实时时钟(RTC)是一个独立的定时器,RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能,修改计数器的值可以重新设置系统当前的时间和日期。 RTC模块和时钟配置系统(RCC_BDCR寄存器)是在备份区域,即在系统
[单片机]
STM32——系统滴答定时器
一、SysTick【内核中】 【风格:先描述一下库对寄存器的封装,再举例实现某些功能】 SysTick定时器被捆绑在NVIC中,用于产生SysTick异常(异常号: 15)。在以前,操作系统还有所有使用了时基的系统,都必须一个硬件定时器来产生需要的“滴答”中断,作为整个系统的时基。滴答中断对操作系统尤其重要。例如,操作系统可以为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心跳”的节律。 Corte
[单片机]
关于STM32 Systick 延时函数 变量全局引用的问题
有这样一段代关于systick.c,如下: #include SysTick.h volatile unsigned int TimingDelay ; // 精确延时在SysTick中断里用的计数变量 // 在全局变量里面一定要加上volatile关键字(易变的),否则在全局引用中容易造成编译器的传递错误 void SysTick_1ms_Configuration(void) { /* Setup SysTick Timer for 1 msec interrupts */ if (SysTick_Config(SystemFrequency / 1000)) { /* Capture error */ while (
[单片机]
14. 独立看门狗实验
一。 看门狗概述 1. 为什么要用看门狗 2. 看门狗要解决的问题 STM32有两个看门狗 独立看门狗 窗口看门狗 3. 独立看门狗的功能描述 键值寄存器 KR (1)往KR中写入0xCCCC的时候,开始启动看门狗。 (2)计数器开始从其复位值0xFFF递减,当计数到0的时候会产生一个复位信号RESET。 (3)如果在某个时候往KR寄存器中写入0xAAAA(喂狗),自动重装载寄存器RLR的值就会重新加载到计数器中,从而避免看门狗复位。 如果能够及时喂狗,计数器的值就无法到0,从而程序可以正常运行。 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰, 造成程序跑
[单片机]
STM32驱动16位高精度AD TM7705/AD7705,带2.8寸TFT显示
最近在搞一个往届的电子设计大赛题目,用到AD7705就将它的程序移植到了原子的STM32F103ZET6上,供大家参考使用 制作出来的实物图如下: 2.8寸LCD显示屏界面: 硬件接线,直插原子NRF无线模块上就可以了: 单片机源程序如下: #include led.h #include delay.h #include key.h #include sys.h #include lcd.h #include usart.h #include TM7705.h #include stdio.h #include string.h #include INITUI.h //TM7705/AD7705直插正
[单片机]
Keil5 STM32L151pack包的安装
最近工作上需要使用到stm32l151这个芯片,原因嘛就是因为这个芯片成本低,某宝售价2元钱,但是原本使用keil5没有这个芯片的型号选择,于是在官网http://www.keil.com/dd2/pack/#/eula-container 找到了这个系列的pack包, 点击下载即可 下载完成后直接点击安装 然后重启keil软件就会找到需要的那个芯片型号了 刚碰到这个问题的时候在网上找了好久都没有解决,后来去官网上看看文档,才发现这么简单啊,所有啊 !这是一个教训,网上的一些乱七八糟的不能全信,可能会走弯路的。开发的道路坑多慎行啊!!!
[单片机]
使用STM32点亮一颗LED实验
本次实验系统环境 Matlab版本: 2021b 系统环境 :Win10专业版 模型与原理图 simulink模型如图5.1所示,实验现象PB8以0.5S周期反转,PB9以1S周期翻转闪烁,本次实验电路原理如图5.2所示,实验所使用的下载器为STLINK 2V1版本,下载器自带一个串口,完整实验电路板如图5.3所示 图5.1 两颗LED闪烁simulink模型 图5.2 LED闪烁电路图 图5.3 实验开发板 基础模型介绍与分析 “Digital Write”模型用于控制I/O口作为普通输出用,双击模型可更改引脚编号,如图5.4所示其引脚对应STM32的PB8端口,例如想使用PA5引脚时,可通过将其改为“PA_
[单片机]