1.位操作
1.1:不改变其他位的值情况下,对某几个位进行操作
GPIOA->CRL&=0XFFFFFF0F; //将第 4-7 位清 0 ,清零用&
GPIOA->CRL|=0X00000040; //设置相应位的值,不改变其他位的值,置1用| 1.2:移位操作GPIOx->BSRR = (((uint32_t)0x01) << pinpos); //第pinpos位设置为1 GPIOA->ODR|=1<<5; //PA.5 输出高,不改变其他位 1.3:~取反操作 TIMx->SR = (uint16_t)~TIM_FLAG; 1.4:define 宏定义 #define 标识符 字符串 #defineSYSCLK_FREQ_72MHz 72000000 //定义标识符 SYSCLK_FREQ_72MHz 的值为 72000000 1.5:ifdef条件编译 #ifdef标识符 程序1......
#else 程序2..... #endif 1.6:extern变量申明 extern u16 USART_RX_STA; 例1 u8 id;//定义只允许一次 main() { id=1; printf("d%",id);//id=1 test(); printf("d%",id);//id=2 } 例2 extern u8 id;//申明变量 id 是在外部定义的,申明可以在很多个文件中进行 void test(void){ id=2; } 1.7:typedef struct _GPIO { __IO uint32_t CRL; __IO uint32_t CRH; … }; 定义了一个结构体 GPIO,这样我们定义变量的方式为: struct _GPIO GPIOA;//定义结构体变量 GPIOA typedef struct { __IO uint32_t CRL; __IO uint32_t CRH; … } GPIO_TypeDef; GPIO_TypeDef _GPIOA,_GPIOB; 1.8:结构体 Struct 结构体名{ 成员列表; }变量名列表; Struct U_TYPE { Int BaudRate Int WordLength; }usart1,usart2; 在结构体申明的时候可以定义变量,也可以申明之后定义,方法是:Struct 结构体名字 结构体变量列表 ; 例如:struct U_TYPE usart1,usart2;
参考文献“STM32F1开发指南-库函数版本_V3.1 ” Page116-121 标签:__,MDK,定义,C语言,学习,GPIOA,uint32,GPIO,id From: https://www.cnblogs.com/JasenJia/p/16591255.html