標題: 基于STM32F407的八路智能搶答器源碼(使用WIFI模塊) [打印本頁]

作者: 1807860757    時間: 2018-5-29 22:52
標題: 基于STM32F407的八路智能搶答器源碼(使用WIFI模塊)
單片機源程序如下:
  1. //程序開始,按KEY_UP鍵選擇WIFI AP模式,再按KEY_UP鍵選擇TCP服務器模式,進入頁面。
  2. //使用手機WIFI連接開發(fā)板熱點ATK-ESP8266,密碼為12345678,再打開手機上的網(wǎng)絡調(diào)試助手,
  3. //選擇tcp client,點增加,輸入IP192.168.4.1,端口8086,選擇增加,顯示連接成功即可開始。
  4. //主持人同時發(fā)送兩個數(shù)據(jù),當主持人發(fā)送第一個數(shù)據(jù)為0屏幕顯示30s倒計時開始,第二個數(shù)據(jù)代表第幾題,
  5. //并在屏幕左邊出現(xiàn)題目,此時八位選手可開始搶答。選手輸入第一位數(shù)代表自己的組數(shù),后面的數(shù)即為答案。
  6. //當選手發(fā)送成功后將會在屏幕左邊顯示選手發(fā)送的內(nèi)容,右邊會顯示搶答者的組數(shù),若答案正確組數(shù)下邊會提示RIGHT,
  7. //該組加一分;錯誤則提示W(wǎng)RONG,不加分。一旦有選手搶答,倒計時停止,并在搶答者下方顯示該輪搶答用時。
  8. //本輪搶答結(jié)束,主持人發(fā)送9清除該輪時間等,發(fā)送0和題目數(shù)重新開始30s倒計時,進行下一題。

  9. #include "sys.h"
  10. #include "delay.h"  
  11. #include "usart.h"   
  12. #include "led.h"
  13. #include "lcd.h"
  14. #include "key.h"  
  15. #include "usmart.h"  
  16. #include "sram.h"   
  17. #include "malloc.h"
  18. #include "w25qxx.h"   
  19. #include "sdio_sdcard.h"
  20. #include "ff.h"  
  21. #include "exfuns.h"   
  22. #include "fontupd.h"
  23. #include "text.h"       
  24. #include "usmart.h"       
  25. #include "touch.h"               
  26. #include "usart3.h"
  27. #include "common.h"
  28. #include "beep.h"
  29. #include "timer.h"
  30. #include "rtc.h"

  31.        
  32. int main(void)
  33. {      
  34.         u8 key,fontok=0;
  35.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級分組2
  36.         delay_init(168);  //初始化延時函數(shù)
  37.         uart_init(115200);                //初始化串口波特率為115200
  38.         usart3_init(115200);  //初始化串口3波特率為115200
  39.         LED_Init();                                        //初始化LED  
  40.         LCD_Init();                                        //LCD初始化  
  41.         KEY_Init();                                        //按鍵初始化  
  42.         W25QXX_Init();                                //初始化W25Q128
  43.         tp_dev.init();                                //初始化觸摸屏
  44.         BEEP_Init();          //初始化蜂鳴器端口
  45.         KEY_Init();           //初始化與按鍵連接的硬件接口
  46.         TIM3_Int_Init(10000-1,8400-1);        //定時器時鐘84M,分頻系數(shù)8400,所以84M/8400=10Khz的計數(shù)頻率,計數(shù)10000次為1s
  47.        
  48.         usmart_dev.init(168);                //初始化USMART
  49.         my_mem_init(SRAMIN);                //初始化內(nèi)部內(nèi)存池
  50.         my_mem_init(SRAMCCM);                //初始化CCM內(nèi)存池
  51.         exfuns_init();                                //為fatfs相關(guān)變量申請內(nèi)存  
  52.   f_mount(fs[0],"0:",1);                 //掛載SD卡
  53.         f_mount(fs[1],"1:",1);                 //掛載FLASH.
  54.         key=KEY_Scan(0);  
  55.         if(key==KEY0_PRES)                //強制校準
  56.         {
  57.                 //LCD_Clear(WHITE);        //清屏
  58.                 TP_Adjust();                  //屏幕校準
  59.                 TP_Save_Adjdata();          
  60.                 //LCD_Clear(WHITE);        //清屏
  61.         }
  62.         fontok=font_init();                //檢查字庫是否OK
  63.         if(fontok||key==KEY1_PRES)//需要更新字庫                                 
  64.         {
  65.                 //LCD_Clear(WHITE);                           //清屏
  66.                 POINT_COLOR=RED;                        //設(shè)置字體為紅色                                
  67.                 LCD_ShowString(60,50,200,16,16,"ALIENTEK STM32");
  68.                 while(SD_Init())                        //檢測SD卡
  69.                 {
  70.                         LCD_ShowString(60,70,200,16,16,"SD Card Failed!");
  71.                         delay_ms(200);
  72.                         LCD_Fill(60,70,200+60,70+16,WHITE);
  73.                         delay_ms(200);                    
  74.                 }                                                                                                                     
  75.                 LCD_ShowString(60,70,200,16,16,"SD Card OK");
  76.                 LCD_ShowString(60,90,200,16,16,"Font Updating...");
  77.                 key=update_font(20,110,16,"0:");//從SD卡更新
  78.                 while(key)//更新失敗               
  79.                 {                                           
  80.                         LCD_ShowString(60,110,200,16,16,"Font Update Failed!");
  81.                         delay_ms(200);
  82.                         LCD_Fill(20,110,200+20,110+16,WHITE);
  83.                         delay_ms(200);                       
  84.                 }                   
  85.                 LCD_ShowString(60,110,200,16,16,"Font Update Success!");
  86.                 delay_ms(1500);       
  87.                 LCD_Clear(WHITE);//清屏               
  88.         }  
  89.         atk_8266_test();                //進入ATK_ESP8266測試       
  90. }
復制代碼

所有資料51hei提供下載:
智能搶答器(統(tǒng)計得分).rar (1.23 MB, 下載次數(shù): 107)



作者: 麻薯小湯圓    時間: 2021-12-10 14:24
有原理的說明嗎





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1