目录
一、STM 32程序1.建立一个工程文件2.选择STM32芯片3.对所选芯片进行设置4.编写源程序5.编译结果
二、程序的仿真调试1.仿真前的设置(1)点击魔法棒,进入设置界面(2) 进入debug界面,左侧选择Use Simulator,右侧选择ULINK2/ME Cortex Debugger,最后点击Settings(3) 进入setting界面,选择Autodelect
2.开始调试
三、总结
一、STM 32程序
1.建立一个工程文件
2.选择STM32芯片
3.对所选芯片进行设置
4.编写源程序
#define PERIPH_BASE ((unsigned int)0x40000000)
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)
#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00)
#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)
#define GPIOD_BASE (APB2PERIPH_BASE + 0x1400)
#define GPIOE_BASE (APB2PERIPH_BASE + 0x1800)
#define GPIOF_BASE (APB2PERIPH_BASE + 0x1C00)
#define GPIOG_BASE (APB2PERIPH_BASE + 0x2000)
#define GPIOA_ODR_Addr (GPIOA_BASE+12)
#define GPIOB_ODR_Addr (GPIOB_BASE+12)
#define GPIOC_ODR_Addr (GPIOC_BASE+12)
#define GPIOD_ODR_Addr (GPIOD_BASE+12)
#define GPIOE_ODR_Addr (GPIOE_BASE+12)
#define GPIOF_ODR_Addr (GPIOF_BASE+12)
#define GPIOG_ODR_Addr (GPIOG_BASE+12)
#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2))
#define MEM_ADDR(addr) *((volatile unsigned long *)(addr))
#define LED0 MEM_ADDR(BITBAND(GPIOA_ODR_Addr,8))
typedef struct
{
volatile unsigned int CR
;
volatile unsigned int CFGR
;
volatile unsigned int CIR
;
volatile unsigned int APB2RSTR
;
volatile unsigned int APB1RSTR
;
volatile unsigned int AHBENR
;
volatile unsigned int APB2ENR
;
volatile unsigned int APB1ENR
;
volatile unsigned int BDCR
;
volatile unsigned int CSR
;
} RCC_TypeDef
;
#define RCC ((RCC_TypeDef *)0x40021000)
typedef struct
{
volatile unsigned int CRL
;
volatile unsigned int CRH
;
volatile unsigned int IDR
;
volatile unsigned int ODR
;
volatile unsigned int BSRR
;
volatile unsigned int BRR
;
volatile unsigned int LCKR
;
} GPIO_TypeDef
;
#define GPIOA ((GPIO_TypeDef *)GPIOA_BASE)
void LEDInit( void )
{
RCC
->APB2ENR
|=1<<2;
GPIOA
->CRH
&=0XFFFFFFF0;
GPIOA
->CRH
|=0X00000003;
}
void Delay_ms( volatile unsigned int t
)
{
unsigned int i
,n
;
for (n
=0;n
<t
;n
++)
for (i
=0;i
<800;i
++);
}
int main(void)
{
LEDInit();
while (1)
{
LED0
=0;
Delay_ms(500);
LED0
=1;
Delay_ms(500);
}
}
5.编译结果
二、程序的仿真调试
1.仿真前的设置
(1)点击魔法棒,进入设置界面
(2) 进入debug界面,左侧选择Use Simulator,右侧选择ULINK2/ME Cortex Debugger,最后点击Settings
(3) 进入setting界面,选择Autodelect
2.开始调试
首先选择Start Debug,然后利用调试工具开始进行调试操作
三、总结
安装pack installer的时候遇到了点麻烦,进行STM 32调试的时候遇到了诸多问题,通过这个练习,自己能够初步认识使用MDK建立一个工程,调试一个工程。但是缺少LED闪烁的仿真效果展示结果和过程。