stm32有5组GPIO口,GPIOA GPIOB GPIOC GPIOD GPIOE
每个GPIO端口有:
2个配置寄存器GPIOx_CRL, GPIOx_CRH(32位);
2个数据寄存器GPIOx_IDR, GPIOx_ODR(32位);
1个置位/复位寄存器GPIOx_BSRR(32位);
1个复位寄存器GPIOx_BRR(16位);
1个锁定寄存器GPIOx_LCKR(32位);
输入模式:
—输入浮空
─ 输入上拉
─ 输入下拉
─ 模拟输入
输出模式:
─ 开漏输出
─ 推挽式输出
─ 推挽式复用功能
─ 开漏复用功能
1 #include "stm32f10x_gpio.h" 2 3 int main() 4 { 5 6 //设置GPIOA的工作模式,何种输入方式、何种输出方式, 以及工作速率的设定; 7 // GPIOA->CRL = 0x33; 8 // //在相应引脚上设置相应电平 9 // GPIOA->ODR = 0x00; //输出低电平 10 // GPIOA->ODR = 0x03; //设置为11,输出高电平,而不同于51中的1; 11 12 //设置GPIOA工作模式; 13 //PA0 设置为输出模式,50hz, PA8 设置为输入; 14 GPIOA->CRL = 0x03; 15 GPIOA->CRH = 0X04; 16 17 while(1) 18 { 19 if((GPIOA->ODR & 0x0100) ==0x0100) 20 { 21 GPIOA->ODR = 0x01; 22 } 23 else 24 { 25 GPIOA->ODR = 0x00; 26 } 27 } 28 29 return 0; 30 }
时间: 2024-10-24 06:24:11