|
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(輸入)。
|
|
【推挽與開漏的區別】 推挽輸出:可以輸出高質量的低電平和高電平 開漏輸出:可以輸出高質量的低電平,不能輸出高電平(只能輸出高阻態)。
|