 |
1樓
巨大八爪鱼
2016-11-22 23:01
每1位16进制数表示一个I/O端口。 1为10MHz推挽输出(推挽输出适合直接驱动)(复用为9) 2为2MHz推挽输出(复用为a) 3为50MHz推挽输出(复用为b)
5为10MHz开漏输出(开漏输出适合接三极管基极)(复用为d) 6为2MHz开漏输出(复用为e) 7为50MHz开漏输出(复用为f)
0为模拟输入 4为无默认值的输入 8为带上下拉的输入(ODR=0为下拉,1为上拉),上拉输入表示默认值为1,下拉输入表示默认值为0 c被保留
|
 |
2樓
巨大八爪鱼
2016-11-22 23:04
设置的时候用8位的十六进制数就行了,每一位代表一个I/O口。 例如: GPIOB->CRL = 0x11111111; 就把PB7~0都设为了10MHz推挽输出。最低位为PB0
CRH对应PB15~8
|
 |
3樓
巨大八爪鱼
2016-11-22 23:06
当使用带上下拉电阻的输入模式时,该端口对应的ODR位的值就表示默认的输入电平。 当该端口悬空时,IDR=ODR。否则IDR就等于输入的电平值。
|
 |
4樓
巨大八爪鱼
2016-11-22 23:11
最常用的就是1、2、3(输出),8(输入)。
|
 |
【推挽与开漏的区别】 推挽输出:可以输出高质量的低电平和高电平 开漏输出:可以输出高质量的低电平,不能输出高电平(只能输出高阻态)。
|