找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5862|回复: 1
打印 上一主题 下一主题
收起左侧

基于STM32F407的八路智能抢答器源码(使用WIFI模块)

[复制链接]
跳转到指定楼层
楼主
ID:277145 发表于 2018-5-29 22:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机源程序如下:
  1. //程序开始,按KEY_UP键选择WIFI AP模式,再按KEY_UP键选择TCP服务器模式,进入页面。
  2. //使用手机WIFI连接开发板热点ATK-ESP8266,密码为12345678,再打开手机上的网络调试助手,
  3. //选择tcp client,点增加,输入IP192.168.4.1,端口8086,选择增加,显示连接成功即可开始。
  4. //主持人同时发送两个数据,当主持人发送第一个数据为0屏幕显示30s倒计时开始,第二个数据代表第几题,
  5. //并在屏幕左边出现题目,此时八位选手可开始抢答。选手输入第一位数代表自己的组数,后面的数即为答案。
  6. //当选手发送成功后将会在屏幕左边显示选手发送的内容,右边会显示抢答者的组数,若答案正确组数下边会提示RIGHT,
  7. //该组加一分;错误则提示WRONG,不加分。一旦有选手抢答,倒计时停止,并在抢答者下方显示该轮抢答用时。
  8. //本轮抢答结束,主持人发送9清除该轮时间等,发送0和题目数重新开始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);//设置系统中断优先级分组2
  36.         delay_init(168);  //初始化延时函数
  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,分频系数8400,所以84M/8400=10Khz的计数频率,计数10000次为1s
  47.        
  48.         usmart_dev.init(168);                //初始化USMART
  49.         my_mem_init(SRAMIN);                //初始化内部内存池
  50.         my_mem_init(SRAMCCM);                //初始化CCM内存池
  51.         exfuns_init();                                //为fatfs相关变量申请内存  
  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;                        //设置字体为红色                                
  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提供下载:
智能抢答器(统计得分).rar (1.23 MB, 下载次数: 107)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:988710 发表于 2021-12-10 14:24 | 只看该作者
有原理的说明吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表