記錄一下學習經驗~
這篇博客是關于三態門的使用的。盡管我們數字邏輯已經了解過三態門。但是實際應用起來。昨天還是花了點時間。 別問。問就是想試試哈哈哈。
題目要是: 在STM32的PB0引腳.上連接2個三態門,再從2個三態門分別連 接到1個LED和1個按鈕。編寫程序控制LED和按鈕,使得按鈕按下時,LED點亮;按鈕彈起時,LED熄滅。 !注意: ▲除了PB0和三態門的控制信號之外,不能再用更多的PA,PB,PC弓|腳了 ▲按鈕一端接三態門,另-端接地。按鈕不能接到三態門的控制端,那樣三態門就沒意義了 ▲LED和按鈕之間不能有任何直接連線 ▲LED點亮時,適當加入延時,但不宜太長
▲若最后效果中LED有閃爍,屬正常現象。.
記錄:小tips:把一個端口既當作輸入端口使用,也當作輸出端口使用。 視頻學習鏈接(B站鏈接): https://www.bilibili.com/video/BV1bQ4y1M77g/
多多支持噢 使用的是STM32F103R6噢~ 關鍵代碼部分: while (1) { /* USER CODE END WHILE */ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, 1);//三態門啟動 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 */ }
51hei.png (5.94 KB, 下載次數: 43)
下載附件
2020-6-1 14:58 上傳
源碼及電路圖:
STM32-三態門.zip
(91.21 KB, 下載次數: 15)
2020-6-1 13:59 上傳
點擊文件名下載附件
STM32-三態門 下載積分: 黑幣 -5
|