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