STM32开发实例_基于STM32单片机的智能图书馆系统(电路图+程序+流程图)24-32-05

一.系统概述

智能图书馆系统实现了图书管理系统包括图书信息录入、数据传输、数据管理、权限管理和统计等功能,提高了图书管理的效率和准确性,具体包括以下主要功能:
1. 条形码扫描功能:
- 使用条形码扫描模块扫描图书上的条形码,将新到的图书的基本信息存储到数据库中。
- 上位机端显示图书的基本信息。
2. 数据传输功能:
- 利用无线传输模块建立单片机和上位机之间的联系,实现将单片机扫描到的图书信息传输至上位机并显示。
3. 图书数据管理模块:
- 上位机中展示书籍的基本信息,包括书籍名称、描述、价格、库存,并显示对应的条形码编号。
4. 人员权限管理:
- 图书馆管理员具备图书的出库和入库修改权限。
- 用户只能查看图书的基本信息,无出库和入库权限。
5. 图书数据统计:
- 按照每本图书的条形码,统计图书的库存量。
- 展示图书库存情况的图表,以直观形式呈现图书数量的变化。

二.电路设计

电路图采用Altium Designer进行设计:
1. 系统电路中的STM32F103C8T6单片机最小系统是系统的控制核心;
2. 使用GM865条形码扫码模块进行条形码扫码,通过UART串口与单片机进行连接;
3. 通过ESP8266-01S将得到条形码数据上传到服务器端,通过UART串口与单片机进行通信。

三.程序设计

#include "sys.h"
#include "delay.h"
#include "adc2.h"
#include "math.h"
 #include "adc.h"
#include "key.h"
#include "OLED_I2C.h"
#include "Control_Report_To_Police.h"
/************************************************
版权:小常硬件
公众号:微信搜索“小常硬件“在公众号免费下载相关模块资料
************************************************/

int main(void)
 {	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
	delay_init();	    	 //延时函数初始化	
  Usart1_Init(9600);	 
	 KEY1_Init();
	TIM4_Init(300,7200);
	ALi_ESP8266_GPIO_Init();
	MQTT_Buff_Init();
  AliIoT_Parameter_Init();
  while(1)
	{
    OLED_Display_Cotrol(); //显示控制函数
	}	 
} 


/*-------------------------------------------------*/
/*                                                 */
/*          	 WIFI(ESP8266)源文件             */
/*                                                 */
/*-------------------------------------------------*/

// 硬件连接:
// PA2 RX
// PA3 TX
// PA4 复位
#include "wifi.h"	    //包含需要的头文件


************************************************/
char wifi_mode = 0;     //联网模式 0:SSID和密码写在程序里   1:Smartconfig方式用APP发送
/*-------------------------------------------------*/
/*函数名:初始化WiFi的复位IO                       */
/*参  数:无                                       */
/*返回值:无                                       */
/*-------------------------------------------------*/
void WiFi_ResetIO_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;                            //定义一个设置IO端口参数的结构体
	RCC_APB2PeriphClockCmd( RCC_APB2Periph_ALi_GPIO_Port , ENABLE); //使能PA端口时钟
	
	GPIO_InitStructure.GPIO_Pin = ALi_GPIO_Pin_Num_Rst;               //准备设置端口号
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //速率50Mhz
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   	              //推免输出方式
	GPIO_Init(ALi_GPIO_Port, &GPIO_InitStructure);            	      //设置输出模式
	RESET_IO(1);                                                      //复位IO拉高电平
}

/*************************************************
阿里云  ESP8266  GPIO以及通信接口的初始化
*************************************************/
void ALi_ESP8266_GPIO_Init()
{
	Usart2_Init(115200);
	WiFi_ResetIO_Init();
	
}

 四.资料内容

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小常硬件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值