历史上的今天
今天是:2025年08月15日(星期五)
2018年08月15日 | STM32的IO口配置
2018-08-15 来源:eefocus
每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。
GPIO端口的每个位可以由软件分别配置成多种模式。
1、输入浮空
2、输入上拉
3、输入下拉
4、模拟输入
5、开漏输出
6、推挽式输出
7、推挽式复用功能
8、开漏复用功能
每个I/O端口位可以自由编程,然而I/0端口寄存器必须按32位字被访问(不允许半字或字节访问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器的读/更改的独立访问;这样,在读和更改访问之间产生IRQ时不会发生危险。
IO结构图
端口配置表
输出模式位
当I/O端口配置为输入时:
1、输出缓冲器被禁止
2、施密特触发输入被激活
3、根据输入配置(上拉,下拉或浮动)的不同,弱上拉和下拉电阻被连接
4、出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器
5、对输入数据寄存器的读访问可得到I/O状态
当I/O端口被配置为输出时:
1、输出缓冲器被激活
2、开漏模式:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将端口置于高阻状态(PMOS从不被激活)。
推挽模式:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将激活P-MOS。
3、 施密特触发输入被激活
4、弱上拉和下拉电阻被禁止
5、出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器
6、在开漏模式时,对输入数据寄存器的读访问可得到I/O状态
7、在推挽式模式时,对输出数据寄存器的读访问得到最后一次写的值
史海拾趣
|
在Linux环境下,安装嵌入式系统的好处 在Linux操作系统下建立交叉编译环境,进行内核的配置,编译,程序的开发等,具有通用性.适合于所有嵌入式设备的系统移植,具有广泛性. 相比在IDE下安装uClinux,安装过程是比较复杂,但后续使用过程中会比较顺利. ...… 查看全部问答> |
|
现在公司要用8962的功能,听说现在周立功官方有UCOSII+LWIP的例程,哪位能否给我发一份,我的邮箱cqmky@163.com QQ :93432106 非常感谢… 查看全部问答> |
|
不是说是可以用430的PWM波来控制步进电机(m35sp-7np型号的步进电机,很常见的电机)吗?就是实现步进电机正转反转,加速减速。 但是m35sp-7np型号的步进电机上面除了公共端以外,还有4根线啊,难道说每一根线都要送一个独立的PWM波,还是怎么样的 ...… 查看全部问答> |
|
LPC810到手了,就想让它动起来,看官方提供的编译系统:LPCXpresso, 虽然下了一个,但没有安装,因为安装有IAR系统,所以就想使用IAR来作编译器, 在选型时,也没有发现LPC810这个片子。只有用通用的M0了。 但在将例程中的文件拷贝后编译,发现 ...… 查看全部问答> |




