寄存器版跑马灯实验程序,完全通过操作地址来实现的,不直观,而且容易出错。现在用存储器映像,添加宏定义,增强程序的可读性。
一、存储器映像头文件
#ifndef __STM32F10x_H
#define __STM32F10x_H
#define PERIPH_BASE (0X40000000)
#define APB1PERIPH_BASE PERIPH_BASE
#define APB2PERIPH_BASE (PERIPH_BASE + 0X10000)
#define AHBPERIPH_BASE (PERIPH_BASE + 0X20000)
#define RCC_BASE (AHBPERIPH_BASE + 0X1000)
#define GPIOB_BASE (APB2PERIPH_BASE + 0X0C00)
#define RCC_APB2ENR *(unsigned int *)(RCC_BASE + 0X18)
#define GPIOB_CRL *(unsigned int *)(GPIOB_BASE + 0X00)
#define GPIOB_CRH *(unsigned int *)(GPIOB_BASE + 0X04)
#define GPIOB_ODR *(unsigned int *)(GPIOB_BASE + 0X0C)
#endif
Continue reading →