/** @addtogroup Exported_macro//输出宏指令
* @{
*/// REG:registre
#define SET_BIT(REG, BIT) ((REG) |= (BIT)) //return param1 = param1 | param2;
#define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT)) //return param1 = param1 & (~param2);
#define READ_BIT(REG, BIT) ((REG) & (BIT)) //returm param1 & param2
#define CLEAR_REG(REG) ((REG) = (0x0)) //return 0
#define WRITE_REG(REG, VAL) ((REG) = (VAL)) //return param2
#define READ_REG(REG) ((REG)) //return param1
#define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK)))
#define POSITION_VAL(VAL) (__CLZ(__RBIT(VAL)))
上面是stm32f4xx.h里面的一些有关于