樹莓派3B 使用STM32擴充套件板實現按鍵驅動

2021-09-12 01:56:27 字數 1980 閱讀 7821

樹莓派裡引出了40個pin,其中有8個引腳可以作為gpio口使用。實驗的主要功能就是驗證樹莓派中使用python控制gpio輸入輸出的功能。使用者指南裡用的是麵包板插線的方法來進行實驗的,我手上沒有這些器件,但是有好幾塊微控制器開發板,可以用這些微控制器作為擴充套件板實現上面的實驗。擴充套件板選的是個人比較喜歡的st家的stm32l476vgt6g  discovery開發板。

感謝eben大牛做的貢獻,讓我們這些小白能以低廉的**用到效能如此卓越的計算機。eben大牛寫的《raspberry pi使用者指南》入門必備書籍,在這裡分享給大家,還有一些樹莓派書籍買板子送的:

《raspberry使用者指南》中文第3版:       提取碼:2gg2

英文第4版:    提取碼:fa5v

實現流程: stm32板上的按鍵joy_down被按下後翻轉led4的狀態,同時把和led4連線的pb2引腳用杜邦線和樹莓派上的gpio12連線。樹莓派上檢測到gpio12的狀態改變就會列印一段資訊到螢幕上。功能很簡單,但是在第一次實驗時還是遇到一些問題。

樹莓派的引腳圖:

從上圖看到按照引腳標號順序看第12引腳對應gpio18,第32引腳對應gpio12。

先看使用者指南裡給的demo:

import rpi.gpio as gpio

gpio.setmode(gpio.board)

gpio.setup(12, gpio.in)

while true:

input_value = gpio.input(12)

if input_value == false:

print("the button has been pressed.")

while input_value == false:

input_value = gpio.input(12)

其中第2行定義的就是gpio和引腳的對應關係,這裡參考所以board模式使用的是物理引腳的定義,而bcm模式的引腳對應cpu上的gpio。

下面再來看stm32板上的連線,板上的按鍵連線pa5引腳,而led燈和pb2連線,這裡把pb2和樹莓派的第12 引腳相連。還要注意把stm32 板上的gnd和樹莓派的gnd連線,使2者共地,否則會看不到結果。

樹莓派和stm32的連線:

stm32實現的核心**:

void key_scan(void)

}

功能很簡單,就是按鍵按下後翻轉led狀態。

#!/usr/bin/env python

import rpi.gpio as gpio

#忽略警告資訊,沒有這句每次重新執行會提示警告

gpio.setwarnings(false)

gpio.setmode(gpio.board)

gpio.setup(12, gpio.in)

flag = gpio.input(12)

#gpio12狀態改變後列印提示

while true:

input_value = gpio.input(12)

if input_value == (not flag):

print("the button has been pressed.")

flag = not flag

上面執行後,每當stm32上的按鍵按下,樹莓派就會列印「the button has been pressed.」,同時stm32板上的led4翻轉。

實驗用其他微控制器開發板也能實現,只要更改微控制器的引腳就行。

樹莓派3b 安裝

2019獨角獸企業重金招聘python工程師標準 一 貼散熱片 背面一片,正面兩篇。二 系統安裝 1 使用sd formatter格式化sd卡 2 使用win32diskimager寫入映象 3 將樹莓派連上電視 鍵盤 電源啟動 4 設定一些引數,連上網路。三 設定 1 在首選項中rasberry ...

樹莓派3B 安裝

之前買的樹莓派3b的板子,發現密碼忘記了,死活連線不上。通過hdmi外接顯示屏,預期的桌面系統也沒有出現。可能是hdmi的一些配置引數問題吧,懶得糾結了直接重新刷系統,系統也有了一些改動。下面開始重新刷系統之路,補充一下一些填坑之路,供自己回顧。選購及安裝參考 備註一下 散熱器 樹莓派發熱還是有點嚴...

七 樹莓派3B 訪問樹莓派

上週都是把樹莓派帶到公司玩,這個確實不怎麼好。就一直在想怎麼可以訪問放在宿舍的樹莓派。網上有很多方法。我還是選擇了做,這個簡單。csdn的大佬們,求審核通過,第三次了,上線半年給下架了,修改後又拒絕,難受。安裝之前請看文件 花生殼 3.0 for 樹莓派 安裝使用攻略 1.安裝 dpkg i phd...