历史上的今天
今天是:2024年09月05日(星期四)
2019年09月05日 | STM32F103程序设计-5-控制引脚高低电平的实现
2019-09-05 来源:eefocus
控制引脚高低电平的实现
开发板上可以通过控制引脚高低电平的实现功能的模块:蜂鸣器、LED灯。
一.GPIO操作步骤:
1.GPIO对应时钟打开
2.设置GPIO的引脚、速度、输出模式等参数
3.引脚输出0或1
给PB5置1的方法的方法有两种:
GPIOB -> BSRR = 0x0020;
GPIOB -> BSRR |= ( 1<<5);(优点,只修改某一位)
给PB5清0的方法的方法有两种:
GPIOB -> BSRR = 0x0000;
GPIOB -> BSRR &= ~( 1<<5); (优点,只修改某一位)
二.熟悉相关寄存器及寄存器版实现输出电平的控制:
1.GPIOB在APB2上,使用的是APB2上的时钟,RCC模块有多个寄存器,刚刚用到的是RCC_APB2ENR寄存器。
RCC->APB2ENR |= (1<<3);
要注意RCC后面的APB2ENR在哪里定义的,要能找到。
2.端口配置低寄存器GPIOB_CTL,端口配置高寄存器GPIOB_CTH
要把20-23位变为1100,可以先让4位都为0,然后让20-21变为11。
GPIOB->CRL &= ~((1<<20) | (1<<21) | (1<<22) |(1<<23));
GPIOB->CRL |= (1<<20) | (1<<21);
3.控制PB5为高
GPIOB -> BSRR |= ( 1<<5);
寄存器版编程用于标准库函数解决不了特定问题时来使用的。
史海拾趣
|
从网上Down的程序疑问,求解 CD4094驱动程序 CD4094用的比较广...可以用在静态显示...串口转并口...驱动数码管LED等... 程序... #include #include #define uint unsigned int #define uchar unsigned char /* sbit K1 ...… 查看全部问答> |
|
VS2005 IDE里面的Target/Remote Tools/System Information菜单不能用,有没解决的好办法?我想随时知道我自己的程序跑起 VS2005 IDE里面的Target/Remote Tools/System Information菜单不能用,有没解决的好办法?我想随时知道我自己的程序跑起来后的系统内存状态!… 查看全部问答> |
|
各位大侠: 我使用了Enfora提供的GSM0308 GPRS开发板,通过超级终端与开发板通信,可以发送AT命令了, 但是我不知道怎样才能建立一个GPRS连接。我手上有可以上网的SIM卡,但是不知道GPRS设置过程, 请各位大侠帮忙!谢谢!… 查看全部问答> |
|
在PC上接入多个相同的usb设备,第二个设备提示安装驱动,为什么? 我在PC上接入两个相同的usb设备,通常usb端口可以提供500ma的电流,我接的设备耗电都小于这个值,但是在接入第二个设备时,总是提示安装驱动,或者干脆无法识别。 我在同事的新机箱上试验,他的机器可以,但是我的不行,不知道这种现象除了更换机 ...… 查看全部问答> |
|
程序运行在SVC模式,突然发生了IRQ,会发生什么事情? (1)CPU会自动把CPSR保存到SPSR_IRQ中 (2)然后把PC保存到R14_IRQ (3)然后把CPSR中的模式位强制设置为IRQ模式 (4)然后把PC强制设置为0x18 我理解的对么? 那么,IRQ处理程序怎么写,是不是要完 ...… 查看全部问答> |
|
如何使STM32进行USB传输时提高传输速度?还请大家不吝赐教啊 最近一直在学习USB,总算是稍微有点懂了。现在自己写的PC端USB驱动程序和应用程序终于可以成功实现STM32的BULK /INT传输和有数据/无数据传输控制请求等功能(STM32固件的程序我是用STM32 USB开发工具包中的 ...… 查看全部问答> |




