記錄一下學(xué)習(xí)經(jīng)驗~
這篇博客是關(guān)于三態(tài)門的使用的。盡管我們數(shù)字邏輯已經(jīng)了解過三態(tài)門。但是實際應(yīng)用起來。昨天還是花了點時間。
別問。問就是想試試哈哈哈。
題目要是:
在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點亮?xí)r,適當加入延時,但不宜太長
▲若最后效果中LED有閃爍,屬正,F(xiàn)象。.
記錄:小tips:把一個端口既當作輸入端口使用,也當作輸出端口使用。
視頻學(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 */
}
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |