找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

基于STM32F407的八路智能搶答器源碼(使用WIFI模塊)

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

  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)先級(jí)分組2
  36.         delay_init(168);  //初始化延時(shí)函數(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);        //定時(shí)器時(shí)鐘84M,分頻系數(shù)8400,所以84M/8400=10Khz的計(jì)數(shù)頻率,計(jì)數(shù)10000次為1s
  47.        
  48.         usmart_dev.init(168);                //初始化USMART
  49.         my_mem_init(SRAMIN);                //初始化內(nèi)部?jī)?nèi)存池
  50.         my_mem_init(SRAMCCM);                //初始化CCM內(nèi)存池
  51.         exfuns_init();                                //為fatfs相關(guān)變量申請(qǐng)內(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)                //強(qiáng)制校準(zhǔn)
  56.         {
  57.                 //LCD_Clear(WHITE);        //清屏
  58.                 TP_Adjust();                  //屏幕校準(zhǔn)
  59.                 TP_Save_Adjdata();          
  60.                 //LCD_Clear(WHITE);        //清屏
  61.         }
  62.         fontok=font_init();                //檢查字庫(kù)是否OK
  63.         if(fontok||key==KEY1_PRES)//需要更新字庫(kù)                                 
  64.         {
  65.                 //LCD_Clear(WHITE);                           //清屏
  66.                 POINT_COLOR=RED;                        //設(shè)置字體為紅色                                
  67.                 LCD_ShowString(60,50,200,16,16,"ALIENTEK STM32");
  68.                 while(SD_Init())                        //檢測(cè)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();                //進(jìn)入ATK_ESP8266測(cè)試       
  90. }
復(fù)制代碼

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


評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:988710 發(fā)表于 2021-12-10 14:24 | 只看該作者
有原理的說(shuō)明嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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