### 志航 :::success 讓LED燈按照順序跑動,按按鈕控制跑馬燈閃爍頻率,任一LED亮燈時觸發蜂鳴器。 ::: - 第一點 <!-- .element: class="fragment" --> - 第二點 <!-- .element: class="fragment" --> - 第三點 <!-- .element: class="fragment" --> <h2>The end</h2> <a href="#/0">Back to the first</a> - <span class="fragment highlight-red">這一點按一下才出現,而且是紅色</span> --- <p style="text-align: left;">這行我要靠左</p> <img src="https://hackmd.io/_uploads/HJLbPX3gWx.png" style="width: 80%;"> <p style="text-align: right;">這行我要靠右</p> <p style="font-size: 2.5em;">這行字要放很大</p> <p style="font-size: 0.5em; color: red; font-weight: bold;"> 這行字又大又紅又粗 </p> <a href="#/0">Back to the first</a> #### 主要程式碼 :::spoiler ``` c= #define B1 HAL_GPIO_ReadPin(GPIOD, PB1_Pin) #define B2 HAL_GPIO_ReadPin(GPIOD, PB2_Pin) #define SW HAL_GPIO_ReadPin(GPIOD, SW1_Pin) int main(void) { int SP ; // LED燈閃爍頻率 uint16_t L[4]= {LD4_Pin, LD3_Pin, LD5_Pin, LD6_Pin}; int buz = Buzzer_Pin; while(1) { //控制LED閃爍頻率 if (B1 == 0 && B2 == 0){ SP = 1; } else if(B1 == 0 && B2 == 1){ SP = 2; } else if (B1 == 1 && B2 == 0){ SP = 4; } else { SP = 8; } // 使用迴圈控制LED 跑馬燈 for (int i = 0; i < 4; i++) { //使用SW1控制跑馬燈ON-OFF if(SW == 1){ // LED亮 HAL_GPIO_WritePin(GPIOD, L[i] | buz, GPIO_PIN_SET); } for (int j = 0; j < 4; j++) { if (i != j && SW == 1) { HAL_GPIO_WritePin(GPIOD, L[j], GPIO_PIN_RESET); } } HAL_Delay(100 / SP); // LED滅 HAL_GPIO_WritePin(GPIOD, L[i] | buz, GPIO_PIN_RESET); HAL_Delay(100 / SP); } } } ``` ::: --- {%youtube SvX_ev5MDrA%} https://youtube.com/shorts/P3TdjOzSB_E?feature=share <p style="font-size: 1.8em; color: brown; font-weight: bold; font-family: "Noto Sans TC", "微軟正黑體", sans-serif; > Summary </p>
{"title":"(志航)GPIO","description":"讓LED燈按照順序跑動,按按鈕控制跑馬燈閃爍頻率,任一LED亮燈時觸發蜂鳴器。","contributors":"[{\"id\":\"ee8f139e-adc8-45cc-b8cf-7c8859ceef62\",\"add\":3457,\"del\":1138,\"latestUpdatedAt\":1763618818644}]","slideOptions":"{\"theme\":\"sky\",\"slideNumber\":\"c/t\"}"}
    78 views
   Owned this note