#include "stm32f4xx.h" // Device header
#include "LED.h"
#include "Key.h"
#include "io_bit.h"
#include "usart1.h"
#include "string.h"//字符串库
#include "Buzz.h"
#include "esp8266.h"
#include "usart3.h"
#include "delay.h"
#include "lcd.h"
#include "simei.h"
#include "malou.h"
#include "1.h"
#include "2.h"
#include "3.h"
#include "4.h"
#include "5.h"
#include "6.h"
#include "7.h"
#include "8.h"
#include "9.h"
#include "10.h"
#include "11.h"
#include "12.h"
#include "13.h"
#include "14.h"
#include "15.h"
#include "rtc.h"
//LED宏定义
#define LED1 PFout(6)
#define LED2 PFout(9)
#define LED3 PFout(10)
#define LED4 PFout(7)
//按键宏定义
#define KEY1 PAin(0)
#define KEY2 PEin(2)
#define KEY3 PEin(3)
#define KEY4 PEin(4)
#define BUZZ PFout(8)//蜂鸣器,高电平打开
//延时函数
void DELAY(unsigned int ns)
{
while(ns--);
}
int main(void)
{
Delay_Init(168);
Usart1_Init(115200);//波特率为115200
printf("正在连接\r\n");
USART3_Init(115200);
ESP12_STA_Init();//WIFI作为客户端,需要连接热点或WIFI
LED_Init();
LCD_Init();
Rtc_Init();
LCD_Fill(0,0,320,480,WHITE);
uint8_t key_flag=0;//标志位,记录按键状态,0表示松开,1表示按下
uint8_t Flag = 0;//0睡眠,1唤醒
uint8_t z = 0;
//关灯
LED1 = 1;
LED2 = 1;
LED3 = 1;
LED4 = 1;
while(1)
{
/*要求一*/
RTC_GetTimeDate();
LCD_ShowPic(0,0,100,100,gImage_1);
LCD_ShowString(0,360,"12345678",BLACK,RED,32);
LCD_ShowChineseChar(60,360+32,"西门吹雪",BLACK,WHITE,32);
/**按键控制LED**/
if((KEY1 || !KEY2 || !KEY3 || !KEY4) && key_flag==0)//按键按下
{
key_flag=1;
DELAY(100000);
if(KEY1){LED1=~LED1;}//外电路为上拉输入
else if(!KEY2){LED2=~LED2;}//外电路为下拉输入
else if(!KEY3){LED3=~LED3;}
else if(!KEY4){LED4=~LED4;}
}
else if(!KEY1 && KEY2 && KEY3 && KEY4)//按键松开
{key_flag=0;}
//WIFI串口
if(usart3.RecFlag)
{
usart3.RecFlag = 0;
//闪烁
if(strstr((char *)usart3.RxBuff,"{\"powerstate\":1}"))
{
for(uint8_t i=0;i<100;i++)
{
LED1=~LED1;
DELAY(100000);
}
printf("LED1闪烁");
}
//流水
if(strstr((char *)usart3.RxBuff,"{\"powerstate\":0}"))
{
for(uint8_t i=0;i<100;i++)
{
LED1=~LED1;
DELAY(1000000);
LED2=~LED2;
DELAY(1000000);
LED3=~LED3;
DELAY(1000000);
LED4=~LED4;
DELAY(1000000);
}
printf("LED1-4流水");
}
//呼吸
if(strstr((char *)usart3.RxBuff,"{\"LEDSwitch\":1}"))
{
for(int k=8000;k>=0;k--)
{
LED1_ON();
DELAY(8000-k);
LED1_OFF();
DELAY(k);
}
printf("LED1呼吸");
}
//GIF
if(strstr((char *)usart3.RxBuff,"{\"LEDSwitch\":0}"))
{
printf("图已开启\r\n");
LCD_ShowPic(0,0,100,100,gImage_1);DELAY(5000000);
LCD_ShowPic(0,0,100,100,gImage_2);DELAY(5000000);
LCD_ShowPic(0,0,100,100,gImage_3);DELAY(5000000);
LCD_ShowPic(0,0,100,100,gImage_4);DELAY(5000000);
LCD_ShowPic(0,0,100,100,gImage_5);DELAY(5000000);
LCD_ShowPic(0,0,100,100,gImage_6);DELAY(5000000);
LCD_ShowPic(0,0,100,100,gImage_7);DELAY(5000000);
LCD_ShowPic(0,0,100,100,gImage_8);DELAY(5000000);
LCD_ShowPic(0,0,100,100,gImage_9);DELAY(5000000);
LCD_ShowPic(0,0,100,100,gImage_10);DELAY(5000000);
LCD_ShowPic(0,0,100,100,gImage_11);DELAY(5000000);
LCD_ShowPic(0,0,100,100,gImage_12);DELAY(5000000);
LCD_ShowPic(0,0,100,100,gImage_13);DELAY(5000000);
LCD_ShowPic(0,0,100,100,gImage_14);DELAY(5000000);
LCD_ShowPic(0,0,100,100,gImage_15);DELAY(5000000);
printf("已打开GIF");
}
usart3.RecLen = 0;
memset(usart3.RxBuff,0,sizeof(usart3.RxBuff));
}
}
}
为什么在LED.h上显示错误,根据代码推测,所以LED.h里面写什么代码,LED_Init(void); 里面写什么 代码 // 初始化LED的函数
void LED_OFF(void); 里面写什么代码 // 关闭LED的函数
void LED_ON(void); 里面写什么代码 // 打开LED的函数
void DELAY(unsigned int ns); // 延时函数
关于#stm32#的问题:LCD_ShowChineseChar(60,360+32,"西门吹雪",BLACK,WHITE,32)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 一轮明月照丘壑 2024-09-28 00:32关注
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
关于你的问题,首先我需要指出,由于你没有提供具体的错误信息,我只能根据代码和你提供的信息来猜测可能的问题。从给出的代码中看,你的
LED.h
文件应该包含一些LED控制相关的函数和宏定义。基于你的代码,我推测LED.h
可能应该包含以下内容:#ifndef LED_H #define LED_H // LED相关函数定义 void LED_Init(void); // 初始化LED的函数 void LED_OFF(void); // 关闭LED的函数 void LED_ON(void); // 打开LED的函数 void DELAY(unsigned int ns); // 延时函数声明,因为已经在main函数里面定义了,这里只需要声明即可 #endif // LED_H
其中,
LED_Init
函数应该负责初始化LED硬件相关的配置,LED_ON
和LED_OFF
函数应该分别负责打开和关闭LED灯。此外,你在代码中已经定义了一个DELAY
函数,因此你需要在LED.h
中声明这个函数,以便在其他地方调用它。但是请注意,实际的实现应该在LED.c
或者其他相应的源文件里完成。另外,由于你在代码中使用了宏定义来控制LED灯的状态,这些宏定义也应该在LED.h
中定义。如果你仍然遇到问题,我建议你检查以下几点:
- 确保
LED.h
文件已经被正确包含在你的项目中,并且所有相关的源文件都包含了该头文件。 - 确保
LED.c
文件中的函数实现与LED.h
中的函数声明匹配。 - 检查是否有语法错误或者拼写错误。
- 确保你的编译器支持你所使用的代码标准和库。例如,某些库可能不支持C99或更新的标准,而你需要确认你的编译器是否支持这些标准。如果你不确定你的编译器支持什么标准,你应该查阅相关的文档或者寻求开发者的帮助。如果编译器版本过低或配置不当可能会导致无法识别新的语法或库函数等问题。在这种情况下,你可能需要更新或更换编译器。如果以上都无法解决问题,请提供更详细的错误信息以便我能更准确地帮助你解决问题。
解决 无用评论 打赏 举报 - 确保
悬赏问题
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见
- ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
- ¥20 sentry如何捕获上传Android ndk 崩溃
- ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
- ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?