盡管我們數(shù)字邏輯已經了解過三態(tài)門。但是實際應用起來。昨天還是花了點時間。
別問。問就是想試試哈哈哈。
題目要是:
在STM32的PB0引腳.上連接2個三態(tài)門,再從2個三態(tài)門分別連
接到1個LED和1個按鈕。編寫程序控制LED和按鈕,使得按鈕按下時,LED點亮;按鈕彈起時,LED熄滅。
!注意:
▲除了PB0和三態(tài)門的控制信號之外,不能再用更多的PA,PB,PC弓|腳了
▲按鈕一端接三態(tài)門,另-端接地。按鈕不能接到三態(tài)門的控制端,那樣三態(tài)門就沒意義了
▲LED和按鈕之間不能有任何直接連線
▲LED點亮時,適當加入延時,但不宜太長
▲若最后效果中LED有閃爍,屬正常現(xiàn)象。.
記錄:小tips:把一個端口既當作輸入端口使用,也當作輸出端口使用。
視頻學習鏈接(B站鏈接):
https://www.bilibili.com/video/BV1bQ4y1M77g/
多多支持噢
使用的是STM32F103R6噢~
關鍵代碼部分:
while (1)
{
/* USER CODE END WHILE */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, 1);//三態(tài)門啟動
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1, 1);
GPIO_InitTypeDef GPIO_InitStruct = {0};
/*Configure GPIO pin : PB0 */
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
while (HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0))
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, 0);
}
/*Configure GPIO pins : PB0*/
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, 1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, 0);
HAL_Delay(100);
/* USER CODE BEGIN 3 */
}
源碼及電路圖:
STM32-三態(tài)門.zip
(91.21 KB, 售價: 1 E幣)
2020-6-4 10:14 上傳
點擊文件名下載附件
售價: 1 E幣 [記錄]
[ 購買]
1.png (2.49 KB)
下載附件
2020-6-4 10:14 上傳
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發(fā)內容真實性、客觀性、可用性不做任何保證也不負任何責任,網(wǎng)友之間僅出于學習目的進行交流。3、對提供的數(shù)字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數(shù)字內容進行商業(yè)交易、轉載等行為,該內容只為學習所提供,使用后發(fā)生的一切問題與本站無關。 4、本網(wǎng)站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網(wǎng)站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網(wǎng)站所有軟件和資料均為網(wǎng)友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯(lián)系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|