日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

crh寄存器_CRL,CRH寄存器

發布時間:2023/12/14 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 crh寄存器_CRL,CRH寄存器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在移植ds18b20時看到這樣一段代碼

#define DS18B20_IO_IN() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<12;}

#define DS18B20_IO_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;}

什么意思呢,然后查了一下手冊

發現CRL和CRH寄存器使用是基本相同的:都是配置端口工作模式,以CRH為例,一共有4個字節,從左往右依次配置PIN15---->PIN8,比如我要配置PIN8,那么我就需要關注

CRH的最右邊的4個比特,0xFFFF FFF0(0所代表的4個比特就是需要配置的)

如果你的端口號小于8,就配置CRL,比如PA2;大于等于8就配置CRH

然后回到上面那兩行代碼:先看第一行

GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<12;

配置的CRH寄存器從又往左第4個,依次數過來,pin8,pin9,pin10,pin11,配置的是PB11腳,0代表什么呢,按照上圖的定義,表示復位后的模擬輸入模式

然后??GPIOB->CRH|=8<<12;? ?把8變成二進制就表示0100,01,表示浮空輸入,00表示輸入模式,<<12表示配置的PIN11引腳。

再看這一行:

{GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;}

同樣先復位,然后3變成二進制就是0011,00,通用推挽輸出,11表示50mhz輸出模式

那么如果我們要配置PB2分別為模擬輸入和推挽輸出應該怎么做呢,

首先pb2應該配置CRL寄存器,其他和上面講的就一樣了

#define DS18B20_IO_IN() {GPIOB->CRL&=0XFFFFF0FF;GPIOB->CRL|=8<<8;}

#define DS18B20_IO_OUT() {GPIOB->CRL&=0XFFFFF0FF;GPIOB->CRL|=3<<8;}

總結

以上是生活随笔為你收集整理的crh寄存器_CRL,CRH寄存器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。