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放大縮小

波形符合預期

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章