找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3725|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

野火挑戰(zhàn)者USART1控制LED彩燈程序測試成功

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:221330 發(fā)表于 2019-4-12 10:16 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
兩個(gè)按鍵控制彩燈的紅、綠燈反轉(zhuǎn),按一下KEY1 紅燈反轉(zhuǎn)一次,按一下KEY2,綠燈反轉(zhuǎn)一次。

使用EXTI中斷方式檢測按鍵輸入。
檢測到按鍵引腳上升沿會(huì)進(jìn)入中斷,在stm32f4xx_it.c文件中的中斷服務(wù)函數(shù)處理。

學(xué)習(xí)目的:了解STM32的中斷系統(tǒng)。
【*】 引腳分配
KEY:
兩個(gè)按鍵均有硬件去抖,按下的時(shí)候均為高電平,不按時(shí)為低電平。

    KEY1<--->PA0
    KEY2<--->PC13

LED:
RGB彩燈的三個(gè)陰極接到STM32三個(gè)引腳上,LED低電平亮。

    R<--->PH10
    G<--->PH11
    B<--->PH12
   
    LED4<--->PD11

單片機(jī)源程序如下:
  1. #include "stm32f4xx.h"
  2. #include "./led/bsp_led.h"
  3. #include "./key/bsp_exti.h"
  4. #include "./usart/bsp_debug_usart.h"

  5. void Delay(__IO u32 nCount);
  6. /*************************輸出提示信息*************************************/
  7. static void show_Message(void)
  8. {
  9.         printf("\r\n 這是一個(gè)通訊串口的實(shí)驗(yàn)控制RGB彩燈 \n");
  10.         printf(" 使用 USART1 參數(shù)為:%d 8-N-1 \n",DEBUG_USART_BAUDRATE);
  11.         printf("開發(fā)板接到的指令后控制RGB彩燈顏色,指令對應(yīng)如下: \n");
  12.         printf("   指令 ---------------燈的顏色\n");
  13.         printf("   1 -------   --------紅\n");
  14.         printf("   2 -------   --------綠\n");
  15.         printf("   3 -------   --------藍(lán)\n");
  16.         printf("   4 -------   --------黃n");
  17.         printf("   5 -------   --------紫\n");
  18.         printf("   6 -------   --------青\n");
  19.         printf("   7 -------   --------白\n");
  20.         printf("   8 -------   --------滅\n");
  21.        
  22. }


  23. /**
  24.   * @brief  主函數(shù)
  25.   * @param  無
  26.   * @retval 無
  27.   */
  28.        
  29. int main(void)
  30. {
  31.         char ch;
  32.         /* LED 端口初始化 */
  33.         LED_GPIO_Config();
  34.          
  35.         /* 初始化EXTI中斷,按下按鍵會(huì)觸發(fā)中斷,
  36.   *  觸發(fā)中斷會(huì)進(jìn)入stm32f4xx_it.c文件中的函數(shù)
  37.         *  KEY1_IRQHandler和KEY2_IRQHandler,處理中斷,反轉(zhuǎn)LED燈。
  38.         */
  39.         EXTI_Key_Config();
  40.         /* 等待中斷,由于使用中斷方式,CPU不用輪詢按鍵 */
  41.         Debug_USART_Config();
  42.        
  43.         show_Message();
  44.        
  45.         Usart_SendString(DEBUG_USART,"串口發(fā)送接收");
  46.        
  47.        
  48.                 while(1)                           
  49.         {
  50.                 ch = getchar();
  51.                 printf("接收到的字符:%c\n",ch);
  52.                
  53.                 switch(ch)
  54.                 {
  55.                         case '1':
  56.                                 LED_RED;
  57.                                 break;
  58.                         case '2':
  59.                                 LED_GREEN;
  60.                                 break;
  61.                         case '3':
  62.                                 LED_BLUE;
  63.                                 break;
  64.                         case '4':
  65.                                 LED_YELLOW;
  66.                           break;
  67.                         case '5':
  68.                                 LED_PURPLE;
  69.                                 break;
  70.                         case '7':
  71.                                 LED_CYAN;
  72.                                 break;
  73.                         case '8':
  74.                                 LED_WHITE;
  75.                                 break;
  76.                         case '9':
  77.                                 LED_RGBOFF;
  78.                                 break;
  79.                        
  80.                 }

  81.   }
  82. }

  83. /*********************************************END OF FILE**********************/
復(fù)制代碼

所有資料51hei提供下載:
10-EXTI—外部中斷.7z (352.51 KB, 下載次數(shù): 25)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表