• <strike id="6sogq"><s id="6sogq"></s></strike>
  • <strike id="6sogq"></strike>

    千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

    400-811-9990
    手機(jī)站
    千鋒教育

    千鋒學(xué)習(xí)站 | 隨時隨地免費(fèi)學(xué)

    千鋒教育

    掃一掃進(jìn)入千鋒手機(jī)站

    領(lǐng)取全套視頻
    千鋒教育

    關(guān)注千鋒學(xué)習(xí)站小程序
    隨時隨地免費(fèi)學(xué)習(xí)課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當(dāng)前位置:成都千鋒IT培訓(xùn)  >  技術(shù)干貨  >  linux上電初始化gpio,linux設(shè)置gpio

    linux上電初始化gpio,linux設(shè)置gpio

    來源:千鋒教育
    發(fā)布人:xqq
    時間: 2023-11-25 04:40:38

    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;什么意思?

    1、GPIO_Pin_0等只是個宏定義,用來映射IO口的位,而GPIOA等宏定義用來映射IO口,所以要映射到具體的某一管腳,就需要將這兩個結(jié)合起來。

    2、| GPIO_Pin_7;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;這兩句是定義管腳的,GPIO_Pin_6 | GPIO_Pin_7是PA6和PA7,GPIO_Pin_0 | GPIO_Pin_1這個兩個確定是PB0和PB1? 你看一下定義。

    3、單純這句只是選中5引腳,調(diào)用了GPIO_InitTypeDef結(jié)構(gòu)體中的GPIO_Pin,如需要設(shè)計(jì)速度speed,模式mode 還需要下面兩句。

    4、&表示地址,也就是這個結(jié)構(gòu)GPIO_InitStructure的指針,很前面的解釋是配合的。

    嵌入式Linux中如何實(shí)現(xiàn)應(yīng)用程序與驅(qū)動程序函數(shù)接口問題,以GPIO為例

    注冊。當(dāng)應(yīng)用程序需要對設(shè)備進(jìn)行操作時 ,可以訪問該設(shè)備對應(yīng)的文件節(jié) 點(diǎn) ,利用 VFS 調(diào)用該設(shè)備的相關(guān)處理函數(shù)即可。

    在一個老手的指導(dǎo)下,應(yīng)用層可以直接操作GPIO,具體指設(shè)置GPIO的輸入輸出以及輸出電平高或者低。這個大大地提高了靈活性,官方的文檔有GPIO Sysfs Interface for Userspace,GPIO Sysfs。

    系統(tǒng)操作GPIO的方式與WIN差不多 底層都是匯編語言所編寫,而且LINUX的GCC會支持一些拓展的標(biāo)準(zhǔn)以達(dá)到操作底層的目的。

    八:驅(qū)動開發(fā) 驅(qū)動程序設(shè)計(jì)是嵌入式Linux開發(fā)工作中重要的一部分,也是比較困難的一部分。本階段的學(xué)習(xí)要熟悉Linux的內(nèi)核機(jī)制、驅(qū)動程序與用戶級應(yīng)用程序的接口,掌握系統(tǒng)對設(shè)備的并發(fā)操作。

    Linux內(nèi)核gpio

    根據(jù)查詢相關(guān)信息得知linux設(shè)備樹不能直接控制gpio,linux設(shè)備樹有兩個模式的用戶態(tài)和內(nèi)核態(tài),gpio操作只能在內(nèi)核態(tài)進(jìn)行,而應(yīng)用程序運(yùn)行在用戶態(tài)。在內(nèi)核空間控制gpio有兩種方法。通過調(diào)用gpiolib的接口來控制gpio。

    gpio_set_value(unsigned gpio, int value)用來設(shè)置gpio寄存器的值 gpio_direction_output(unsigned gpio, int value)用來設(shè)置gpio為輸出功能,同時設(shè)置gpio輸出的值。

    一共有5組 GPIO(GPIO0~4) ,每組 GPIO 為一個 Bank ,共32個引腳。每個 Bank 包括4個 Group (GPIOA(0~7) ~ D(0~7)) 。不是所有 Bank 都有 GPIOA~D 的編號, RK3399 共122個 GPIO 引腳。

    pinetwork節(jié)點(diǎn)做法如下。啟用Hyper-V和適用于Linux的Windows子系統(tǒng) 固定電腦IP地址 路由器添加端口映射(31400-31409)防火墻添加PiNode入站規(guī)則(31400-31409)準(zhǔn)備工作完成。這就是pi做節(jié)點(diǎn)的方法。

    如何在Linux系統(tǒng)中直接操作GPIO

    1、有意思的是,這個在MicroSD中運(yùn)行的Linux系統(tǒng)開啟了ssh服務(wù),并且root賬號沒有設(shè)置密碼,可以直接進(jìn)入。

    2、在一個老手的指導(dǎo)下,應(yīng)用層可以直接操作GPIO,具體指設(shè)置GPIO的輸入輸出以及輸出電平高或者低。這個大大地提高了靈活性,官方的文檔有GPIO Sysfs Interface for Userspace,GPIO Sysfs。

    3、通過調(diào)用gpiolib的接口來控制gpio。通過ioremap來控制gpio。

    linux內(nèi)核里的GPIO操作函數(shù)

    echo 1 /sys/class/gpio/gpio28/value 以上代碼作用是:將RK30_PIN0_PD4設(shè)置為輸出,將輸出電平設(shè)置為高電平。

    一共有5組 GPIO(GPIO0~4) ,每組 GPIO 為一個 Bank ,共32個引腳。每個 Bank 包括4個 Group (GPIOA(0~7) ~ D(0~7)) 。不是所有 Bank 都有 GPIOA~D 的編號, RK3399 共122個 GPIO 引腳。

    方法/步驟 1 安裝SD Linux系統(tǒng) 如圖所示,先后將Arduino Software 3 (Arduino IDE)和SD-Card Linux Image下載到本機(jī),Arduino IDE在后面查找GPIO與Arduino IO 之間的映射關(guān)系時需要用到。

    gpio初始化pa0

    用法很簡單的,你按鍵是對地的肯定是要上拉輸入了,下拉本來就基本是地了。上拉電阻的目的是為了保證在無信號輸入時輸入端的電平為高電平。而在信號輸入為低電平是輸入端的電平應(yīng)該也為低電平。

    看庫函數(shù)的gpio初始化,先把pa0配置為輸入模式,然后看adc那么庫文件,再配置它的ad模式。

    觸發(fā)方式:STM32 的外部中斷是通過邊沿來觸發(fā)的,不支持電平觸發(fā)。

    聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

    猜你喜歡LIKE

    exec函數(shù)linux,exec函數(shù)返回值

    2023-11-25

    linux不能修改權(quán)限,linux修改權(quán)限777仍然不讓我改

    2023-11-25

    linux中網(wǎng)卡不啟動,linux網(wǎng)卡不工作

    2023-11-24

    最新文章NEW

    deepinlinux主題,deepin 主題

    2023-11-25

    linux下給sh文件權(quán)限,linux文件權(quán)限給用戶

    2023-11-25

    linux怎么圖形界面,linux怎么使用圖形界面

    2023-11-24

    相關(guān)推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網(wǎng)友熱搜 更多>>