用寄存器如何编程
51只需要包含reg52.h就行了,里面包含了各个寄存器地址,如TI=0xff,直接操作就好了
但是STM32感觉好乱,这些寄存器到底定义在哪里,下载了库函数,但是感觉好像寄存器定义都在各自的.h头文件在,,并且还有结构体,像是特地为库函数写的,不单一,,有没有直接像REG.52那样的文件,,还是自己要写一个,那么该怎么写,没看到SFR之类的定义
下面这段代码是哪个头文件下的
#define GPIOE_CRL (*(volatile unsigned long *)0x40011800) //端口E配置低寄存器
#define GPIOE_CRH (*(volatile unsigned long *)0x40011804) //端口E配置高寄存器
#define GPIOE_IDR (*(volatile unsigned long *)0x40011808) //端口E输入数据寄存器
#define GPIOE_ODR (*(volatile unsigned long *)0x4001180c) //端口E输出数据寄存
#define GPIOE_BSRR (*(volatile unsigned long *)0x40011810) //端口E位设置/复位寄存器
#define GPIOE_BRR (*(volatile unsigned long *)0x40011814) //端口E位复位寄存
#define GPIOE_LCKR (*(volatile unsigned long *)0x40011818) //端口E配置锁定寄存器
//0x4001 1400 - 0x4001 17FF GPIOD//////////////////////////////
#define GPIOD_CRL (*(volatile unsigned long *)0x40011400) //端口D配置低寄存器
#define GPIOD_CRH (*(volatile unsigned long *)0x40011404) //端口D配置高寄存器
#define GPIOD_IDR (*(volatile unsigned long *)0x40011408) //端口D输入数据寄存器
#define GPIOD_ODR (*(volatile unsigned long *)0x4001140c) //端口D输出数据寄存
#define GPIOD_BSRR (*(volatile unsigned long *)0x40011410) //端口D位设置/复位寄存器
#define GPIOD_BRR (*(volatile unsigned long *)0x40011414) //端口D位复位寄存
#define GPIOD_LCKR (*(volatile unsigned long *)0x40011418) //端口D配置锁定寄存器
//0x4001 1000 - 0x4001 13FF GPIOC//////////////////////////////
能不能直接操作比如GPIOE_CRL=0X............,直接操作,像51那样
|