stm32正点原子学习笔记(12)GPIO工作原理

 

 

带有FT标识的容忍5V

浮空模式下黄色阴影的是通的。

30~50K

模拟输入熟悉的就是AD转换,外部电压是模拟量,不是01,是电压的形式(0~3.3V),而不是电平(高低)。

如果是写1,N-MOS管是关闭的,那么输出不会由输入的1决定,因为截止了,电平是由外部上拉和下拉决定改的,类似浮空状态。输出状态也可以从6、7这里读取,但不一定是读的写的那个1,是由外部上拉下拉决定改的,而如果是写0,就N-MOS就开启了,IO口电平就会被拉到VSS,低,能被读到。

和前面差不多,不过那个是cpu写寄存器控制,这里是由复用功能(外设)输出决定的。

前半部分类似,但是到了输出驱动器这里,如果输入为1,那么P-MOS导通,N-MOS截止,IO口输出1,如果输入为0,则相反,IO口为0。同样也可以通过输入电路读取IO口输出。

两个32位配置寄存器包含一个低,一个高

stm32是32位的寄存器,一共只有32个位,配置每个IO口要4个位,所以一组32位只能配置8个IO口,1组IO口有16个,所以要两个。

如果是GPIOA_CRL那么就是PA0~PA7

IO口有八种模式,三种速度就是在这里配置。

每个IO口用4位控制,分成两半,两位控制输入输出模式和速度,还有两位控制到底是哪一个模式。

最终的上拉下拉是由ODR寄存器配置的。

 

用于读IO口输入的,在输出模式下也可以读输出。

这两个都只用到了16位,高16位是保留的。

ODR寄存器还有一个作用,在输入模式下,配置上拉下拉

cpu写寄存器时,先写位设置/清除寄存器,达到设置输出数据寄存器的目的,ODR;我们也可通过下面直接设置。

经常只用BSRR的低16位和BRR的低16位,BSRR的高16位很少用。

对于F4就只有一个,没有两个寄存器了。(可能)

 

posted @ 2019-05-21 17:10  裂缘冰释  阅读(571)  评论(0编辑  收藏  举报