MDK5环境下stm32软件模拟

决定写写东西记忆下。

长话短说。emmm

  1. 开发环境

Win10,64位系统,MDK5.25

  1. 目标

做一个流水灯例程(不重要),进行软件模拟,调试做出波形图来验证程序是否符合预期

  1. 步骤
  1. 建立工程,project->new uvison project
  2. 选择芯片,这个我随便选择了个stm32f103,没有芯片的话用软件自带的pack installer在线官网装或者自己网上找packpack installer import
  3. 下一步是选择库文件,主要是startupstdperiph这些。

Cmsis里面的coredevice 里面的startup是必须选的,流水灯用了gpio口,所以选择gpio

 

Stdperiph drivers里面根据需要选择驱动,其中framework是必须的,gpio是根据需要来。

这时候下面会有个警告提示显示需要RCC module,你可以点击勾选stdperiph drivers 里面的RCC,也可以选择下面的resolve按钮自动处理。

  1. main.c文件

文件网上随便找的,GPIOA.1,3,5轮流高低电平输出

#include "stm32f10x.h"

 

u16 DelayCounter=0;

 

void Delay_Init()

 

{

 

   SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);  

 

   SysTick_Config(SystemCoreClock / 1000);

}

void SysTick_Handler(void)

 

{

 

   if(DelayCounter!=0)

 

   {

 

            DelayCounter--;

 

   }

 

}

void Delayms(u16 ms)

 

{

 

   DelayCounter=ms;

 

   while(DelayCounter!=0);

 

}

int main(void)

 

 {       

 

  GPIO_InitTypeDef  GPIO_InitStructure;

 

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);        

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_5;     

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_Init(GPIOA, &GPIO_InitStructure);     

  GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_5);    

 

  Delay_Init();

 

  while(1)

 

 {

 

       GPIO_SetBits(GPIOA,GPIO_Pin_1);

 

       GPIO_SetBits(GPIOA,GPIO_Pin_3);

 

            GPIO_ResetBits(GPIOA,GPIO_Pin_5);

 

       Delayms(500);

 

       GPIO_SetBits(GPIOA,GPIO_Pin_1);

 

       GPIO_ResetBits(GPIOA,GPIO_Pin_3);

 

       GPIO_SetBits(GPIOA,GPIO_Pin_5);

 

       Delayms(500);

 

       GPIO_ResetBits(GPIOA,GPIO_Pin_1);

 

       GPIO_SetBits(GPIOA,GPIO_Pin_3);

 

       GPIO_SetBits(GPIOA,GPIO_Pin_5);

 

       Delayms(500);

 

 }

 

 }

  1. 配置option for target,device,晶振(默认12MHZ,目前常用的是8MHZ),rom地址,debugc/c++output,listing这些都根据需要配置,我只配置了debug,其他的都没改,默认。因为想出波形图,所以Debug里面需要选择勾选use simulator,界面底部的两个dialog dll 要改成DARMSTM.DLLparameter需要改成-pSTM32F103C8(我选择的是STM32F103C8,你选择的device不同芯片不一样就要改不同STM32,最后OK

 

6,build,没errorwarning,一切ok之后,选择debug,开启debug session,(快捷键ctrl+F5)

7,选择逻辑分析仪logic analyzer,setup,确定信号(依次大写字母建立PORTA.1,PORTA.3,PORTA.5),singnal play下面选择display type:bit,勾选hexdecimal display.最后close 保存

 

8run,(快捷键F5)zoom in/out/all放大缩小

波形符合预期

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值