基于STM32F1的开源小项目

简介: 笔记

一. 简介


在前面几篇文章中,将这个项目的各个部分都做了简单的介绍,今天在这里作为一个完整版分享给大家使用。喜欢的话,可以自行获取。


演示视频

观看过演示视频的话,这是一个很好的课设,或者作为初学者入门实践一个首选。


欢迎关注微信公众号

FPGA之旅 回复 STM32-Project1 获取下载链接


二. 项目框架介绍


本项目没有使用RTOS操作系统,是一个裸机程序,使用的是一个前后台的框架。中断回调函数用来查询各个状态是否发生并做好标记,然后在main函数中进行相应的处理。


在进入到main函数之后,是对各个硬件部分进行初始化,并进行开机动画的加载,这也是一个标准的流程。


uart_init(115200);
delay_init();
LCD_Init();
TIM4Init();     //延时
InfraredInit();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
LCDDMAFullOn(BackGround);
Boot_Animation();  //开机动画
LCDDMAFullOn(BackGround);

然后就是根据当前的模式进入到不同的if语句中执行相应的函数,默认为主界面,在里面是一个while循环语句。通过按键的值执行相应的操作,在每一次操作完后,要将按键的状态复位。SelectUp和SelectDown分别为光标的上下移动,切换状态的时候,利用break即可跳出。

其他的每一个状态的实现过程都是这样的写法,非常方便扩展。

if(CurrMode == Main)  //主界面
{ 
  LCDDMAFullOn(BackGround);
  MainInterface();
  while(1)
  {
    if(KEYState == KEYLEFT)
    {
      SelectUp();
      KEYState = KEYNONE;
    }
    else if(KEYState == KEYRIGHT)
    {
      SelectDown(); 
      KEYState = KEYNONE;
    }
    else if(KEYState == KEYUP)
    {
      CurrMode = (enum State)(CurrIndex + 1);
      if(CurrMode == 3)
        CurrMode = Photo;
      KEYState = KEYNONE;
      break;
    }
  }
}

公众号:FPGA之旅


目录
相关文章
|
7月前
|
存储 数据安全/隐私保护
STM32实战项目—密码锁
本文完整详细地介绍了一个密码锁项目的要求,设计思路,程序实现,问题总结和成果展示内容。
140 2
STM32实战项目—密码锁
|
5月前
|
存储 编解码 算法
基于STM32的开源简易示波器项目
基于STM32的开源简易示波器项目
86 0
|
7月前
|
运维 小程序 API
STM32实战项目—WIFI远程开关灯
本文介绍了如何利用正点原子ESP8266和STM32F103C8T6连接腾讯云,利用舵机实现远程开关灯。给出了详细的腾讯云配置和调试步骤,给出了部分程序设计。
129 0
STM32实战项目—WIFI远程开关灯
|
7月前
|
存储 索引
STM32实战项目—停车计费系统
本文详细介绍了一个停车计费系统的任务要求,实现思路。最后,给出了详细的程序设计和测试结果。
137 2
STM32实战项目—停车计费系统
|
7月前
STM32实战项目—楼宇人员计数系统
本文介绍了一个基于红外对管的楼宇人员计数系统设计。简单介绍了一下红外对管的原理和使用方法。针对任务要求给出了详细的实现思路和程序设计。
39 3
STM32实战项目—楼宇人员计数系统
|
11月前
QT上位机串口+STM32单片机项目(二)
QT上位机串口+STM32单片机项目
168 0
|
11月前
QT上位机串口+STM32单片机项目(一)
QT上位机串口+STM32单片机项目
490 0
|
智能硬件
STM32智能家居7天小项目(1)RTOS引入
STM32智能家居7天小项目(1)RTOS引入
133 0
|
智能硬件
STM32智能家居7天小项目(2)串口的使用
STM32智能家居7天小项目(2)串口的使用
114 0
|
智能硬件
STM32智能家居7天小项目(3)ESP8266和STM32的通信简单介绍
STM32智能家居7天小项目(3)ESP8266和STM32的通信简单介绍
174 0