国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

ELEOK

標題: Proteus仿真STM32 三態門的使用 Keil程序 [打印本頁]

作者: 路漫漫    時間: 2020-6-4 10:15
標題: Proteus仿真STM32 三態門的使用 Keil程序
盡管我們數字邏輯已經了解過三態門。但是實際應用起來。昨天還是花了點時間。

別問。問就是想試試哈哈哈。
題目要是:

在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 */

  }
源碼及電路圖: STM32-三態門.zip (91.21 KB, 售價: 1 E幣)







歡迎光臨 ELEOK (http://m.afoofa.cn/) Powered by Discuz! X5.0