久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: STM32單片機凈水器,水流量計制作 附程序 [打印本頁]

作者: ksljxxq    時間: 2024-4-2 18:52
標題: STM32單片機凈水器,水流量計制作 附程序
家用買的凈水器有時放水給忘了水灌的到處都是,于是想出做一個水流量計,要多水就出多少容量水,給大家分享一下;


中斷處理
  1. #include "stm32f10x.h"
  2. #include "delay.h"
  3. #include "exti.h"
  4. #include "led.h"
  5. #include "display.h"
  6. #include "key.h"

  7. void EXIT_Init(void)
  8. {
  9.     GPIO_InitTypeDef GPIO_InitStructure;
  10.     EXTI_InitTypeDef EXTI_InitStructure;                //定義外部中斷結構變
  11.     NVIC_InitTypeDef NVIC_InitStructure;                //定義向量中斷結構變量

  12.     RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB  , ENABLE  );
  13.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//  打開復用時鐘
  14.     GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource0); //連接中斷管腳PB0

  15.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ;                //B0-B1 為外部按鍵 作為3個獨立外部輸入中斷
  16.     GPIO_InitStructure.GPIO_Mode =  GPIO_Mode_IN_FLOATING;                   // 輸入
  17.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 // 最高輸入速率50MHz
  18.     GPIO_Init(GPIOB, &GPIO_InitStructure);                                 // 選擇B端口

  19.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);//設置NVIC中斷分組 0位搶占優先級,4位響應優先級
  20.     NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;//選擇中斷通道0
  21.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//搶占優先級0 只能為0
  22.     NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;//響應優先級2 共有16個
  23.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能中斷
  24.     NVIC_Init(&NVIC_InitStructure);//完成初始化
  25.        
  26.          
  27.     NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn;//選擇中斷通道0
  28.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//搶占優先級0 只能為0
  29.     NVIC_InitStructure.NVIC_IRQChannelSubPriority=2;//響應優先級2 共有16個
  30.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能中斷
  31.     NVIC_Init(&NVIC_InitStructure);//完成初始化

  32.     EXTI_InitStructure.EXTI_Line = EXTI_Line0 | EXTI_Line1;//選擇中斷線路0和1
  33.     EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//設置為中斷請求,非事件請求
  34.     EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;//設置中斷觸發方式為下降沿觸發
  35.     EXTI_InitStructure.EXTI_LineCmd = ENABLE;//外部中斷使能
  36.     EXTI_Init(&EXTI_InitStructure);

  37. }

  38. /*
  39. ********************************************************************************
  40. ** 函數名稱 : EXTI0_IRQHandler(void)
  41. ** 函數功能 : 外部中斷函數
  42. ** 輸    入        : 無
  43. ** 輸    出        : 無
  44. ** 返    回        : 無  RESET
  45. ********************************************************************************
  46. */
  47. void EXTI0_IRQHandler(void)
  48. {
  49.     if(EXTI_GetITStatus(EXTI_Line0)!=RESET)//判斷某個線上的中斷是否發生
  50.     {
  51.       
  52.         if((GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0)==0))    //按鍵真的被按下
  53.         {
  54.                                            mL=mL+sdmaichong_ml;                          //1脈沖為10ML水
  55.                                                       
  56.                                            LjmL= LjmL+sdmaichong_ml;
  57.                                                                       //100ML累計一次
  58.                                        

  59.         }
  60.                
  61. //      while(!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0)); //等待松手 不能使用KEY_B0代替
  62.         EXTI_ClearITPendingBit(EXTI_Line0); //清楚中斷標志位
  63.     }
  64. }


  65. /*
  66. ********************************************************************************
  67. ** 函數名稱 : EXTI1_IRQHandler(void)
  68. ** 函數功能 : 外部中斷函數
  69. ** 輸    入        : 無
  70. ** 輸    出        : 無
  71. ** 返    回        : 無  RESET
  72. ********************************************************************************
  73. */
復制代碼

  1. /*IO使用情況
  2.   A0  A1  A2 A3 A4 A5 A6 A7  鍵盤  B6 B7顯示器  B0水流量感應器  C11 5腳 C12 6腳 24C模塊
  3.         C0電磁閥,C1報警信號
  4. */
  5. #include "stm32f10x_conf.h"
  6. #include "key.h"
  7. #include "display.h"
  8. #include "delay.h"
  9. #include "oled.h"
  10. #include "led.h"
  11. #include "exti.h"
  12. #include "24C02.h"
  13. #include "timer.h"


  14. int main()
  15. {
  16.           SystemInit();  //將主頻調整到72M
  17.     LED_Init();
  18.                 OLED_Init();                        //初始化OLED  
  19.                 OLED_Clear() ;
  20.           TIM1_Init();     //初始化定時器1
  21.           EXIT_Init();
  22.     EXTI0_IRQHandler();
  23. //    EXTI1_IRQHandler();
  24.     AT24CXX_Init(); //24CXX初始化
  25. //                key_Init();
  26.     Read_SmL_LJmL();
  27.    
  28.    while(1)
  29.    {
  30.            HL_key_Display();
  31.            key_scan();
  32.                  Display();         
  33.                         
  34.    }
  35. }

復制代碼

Keil代碼下載: 水流量計 多菜單ML.7z (226.49 KB, 下載次數: 33)

作者: jhczy    時間: 2024-4-3 08:50
注釋較全,下來學習編程方式,謝謝樓主分享
作者: cooleaf    時間: 2024-4-3 23:11
這個比較實用,多點這樣的設計就好了,感謝樓主!!!




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产女人与拘做受免费视频 | 中文字幕91 | 在线播放91 | 久久三级影院 | 日韩视频免费在线 | 免费在线观看av网站 | 中文字幕成人av | 欧美日韩理论 | 波多野结衣一区二区三区在线观看 | 精品国产高清一区二区三区 | av中文在线观看 | 狠狠骚| 亚洲欧美日韩久久久 | 天天操 天天操 | 日韩精品一区二区三区在线观看 | 国产精品久久久久久久久久久久 | 欧美视频第三页 | 国产欧美视频一区二区 | 亚洲在线视频 | 精品国产一区二区三区观看不卡 | 九九久久久 | 亚洲免费在线 | 成年人在线 | aaa在线| 午夜男人视频 | 国产成人一区二区三区 | 美女天堂在线 | 久久乐国产精品 | 99久久精品国产麻豆演员表 | 日韩欧美久久 | 亚洲一区二区三区免费在线观看 | 中文字幕精品一区 | 国产做爰 | 久久国产精品网站 | 日韩免费高清视频 | 欧美在线视频观看 | 久久久夜 | 亚洲午夜精品一区二区三区他趣 | 日韩精品免费播放 | 亚洲一区二区三区欧美 | 日日操夜夜操天天操 |