Proteus仿真工程合并
MDK工程合并
Proteus仿真工程合并
右击Proteus图标选择属性->兼容性->以兼容性运行这个程序->确定
选择这个是防止后面报错,具体原因不明
将工程4中的
剪切复制到工程2.反过来也行。最终电路图如下:
MDK工程合并
工程2是用按键控制灯的亮灭,工程4是LED灯的闪烁。我选择将2合进4
先打开2,观察main函数中的内容
int main(void)
{
u8 temp;
LED_Init(); //³õʼ»¯
KEY_Init(); //³õʼ»¯
while(1)
{ temp = KEY1; //ÔÝ´æ°´¼üÖµ(²¼¶ûÐÍ) £¬ÎÞ°´¼ü·À¶¶´¦Àí
LED1 = temp; } //½«»ñÈ¡µÄ¼üÖµ ¸øLED1¸³Öµ
}
MDK的中文出来是乱码,问题不大
函数内第一行是定义,需要放在工程4初始化之后,不然会报错
第二行是LED初始化,先点进去把这个函数内的串口从GPIOB改成GPIOA。然后发现工程4中也有LED初始化,为了防止混淆,要么重新改一下2中初始化的函数名,要么直接加在工程4的函数中。
第三行是按键初始化,这个函数是工程4没有的,所以可以直接加到工程4中,并加上声明。
第五行:KEY1也是工程4中没有的,因此把KEY1的宏定义一同加到工程4中。
第六行:LED1是工程4中有的,因此需要先改名,再添加到工程4中,一同添加的还有LED相关函数及其声明
修改后:
/************************************************
20230103 »ùÓÚSTM32R6·¶Àý PROTEUS
TIME3ÖÐ¶Ï ¶¨Ê± LED·´×ª
************************************************/
#include "stm32f10x.h"
#include "delay.h" //*¶¨ÒåÓÐÑÓʱº¯Êý£¬À´×Ô..\3 CBT6(led)\STYSTEM\delay\ *
#include "led.h" //¶¨ÒåÓÐGPIO³õʼ»º¯Êý£¬Óк궨ÒåLED1
#include "timer.h"
#define KEY1 PAin(7) //¶¨Òåºê KEY1
void KEY_Init(void); //IO³õʼ»¯
#define LED2 PAout(12)
void LED_Init1(void); //³õʼ»¯
int main(void)
{
u8 temp;
SystemInit();
RCC_ClockSecuritySystemCmd(ENABLE);
LED_Init(); //GPIO³õʼ»¯
LED_Init1(); //³õʼ»¯
KEY_Init(); //³õʼ»¯
// TIM3_Int_Init(4999,7199); //ÍâƵ8M, ¼ÆÊý¾«¶È0.1mS£¬1ÃëÒç³öÒ»´Î
// TIM3_Int_Init(499,7199); //ÍâƵ8M, ¼ÆÊý¾«¶È0.1mS£¬0.1ÃëÒç³öÒ»´Î ʵÎï¼ÆËãÖµ
// TIM3_Int_Init(1,7199); //¼ÆÊý¾«¶È1.8mS PROTEUS ·ÂÕæ 8M KEIL 8M
// TIM3_Int_Init(1,3959); // ¼ÆÊý¾«¶È0.1mS 500usÒç³ö PROTEUS ·ÂÕæ 16M KEIL 8M
// ¼ÆÊý¾«¶È0.9mS PROTEUS ·ÂÕæ 16M KEIL 8M// TIM3_Int_Init(1,7199);
TIM3_Int_Init(499,7199); //PROTEUS ·ÂÕæ8M ½üËÆ1s ¶¨Ê±¹¦ÄÜ ¾«¶È²»¿ÉÒÔ
while(1)
{ temp = KEY1; //ÔÝ´æ°´¼üÖµ(²¼¶ûÐÍ) £¬ÎÞ°´¼ü·À¶¶´¦Àí
LED2 = temp; } //½«»ñÈ¡µÄ¼üÖµ ¸øLED1¸³Öµ
//while(1)
//{ }
}
//°´¼ü³õʼ»¯º¯Êý
void KEY_Init(void) //IO³õʼ»¯
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //ʹÄÜPB¶Ë¿ÚʱÖÓ
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; //GPIOB.7
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //ÉèÖóÉÉÏÀÊäÈë
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO¿ÚËÙ¶ÈΪ50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure); //³õʼ»¯GPIOB7
}
最后将hex文件加入单片机即可。hex文件路径为:..\4 TIME3(LED)\R6(COM)\OBJ\time3.hex