物联网技术应用2021年国赛样题卷A(Lora)

头文件调用

#include <string.h>
#include "board.h"
#include "hal_key.h"
#include "tim-board.h"
#include "timer_handles.h"
#include "flash.h"
#include "stm32l1xx_hal_flash_ex.h"
#include "stm32l1xx_hal_flash.h"

通过取字模取字

char ji[] ={0x40,0x40,0x42,0xCC,0x00,0x40,0x40,0x40,0x40,0xFF,0x40,0x40,0x40,0x40,0x40,0x00,
0x00,0x00,0x00,0x7F,0x20,0x10,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00};/*"计",0*/

char shu[]={0x90,0x52,0x34,0x10,0xFF,0x10,0x34,0x52,0x80,0x70,0x8F,0x08,0x08,0xF8,0x08,0x00,
0x82,0x9A,0x56,0x63,0x22,0x52,0x8E,0x00,0x80,0x40,0x33,0x0C,0x33,0x40,0x80,0x00};/*"数",1*/

char qi[]={0x80,0x80,0x9E,0x92,0x92,0x92,0x9E,0xE0,0x80,0x9E,0xB2,0xD2,0x92,0x9E,0x80,0x00,
0x08,0x08,0xF4,0x94,0x92,0x92,0xF1,0x00,0x01,0xF2,0x92,0x94,0x94,0xF8,0x08,0x00};/*"器",2*/

char zhi[]={0x00,0x80,0x60,0xF8,0x07,0x04,0xE4,0xA4,0xA4,0xBF,0xA4,0xA4,0xE4,0x04,0x00,0x00,
0x01,0x00,0x00,0xFF,0x40,0x40,0x7F,0x4A,0x4A,0x4A,0x4A,0x4A,0x7F,0x40,0x40,0x00};/*"值",3*/

char jie[]={0x20,0x30,0xAC,0x63,0x20,0x18,0x08,0x48,0x48,0x48,0x7F,0x48,0x48,0x48,0x08,0x00,
0x22,0x67,0x22,0x12,0x12,0x12,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00};/*"结",4*/

char guo[]={0x00,0x00,0x00,0xFE,0x92,0x92,0x92,0xFE,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,0x00,
0x44,0x44,0x24,0x25,0x14,0x0C,0x04,0xFF,0x04,0x0C,0x14,0x25,0x24,0x44,0x44,0x00};/*"果",5*/

char maohao[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*":",6*/

char wai[]={0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00};/*"Y",7*/

char nen[]={0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00};/*"N",8*/

界面部分

void chushi()
{
	OLED_ShowCHineseArray(32,0,(char *)ji);
	OLED_ShowCHineseArray(48,0,(char *)shu);
	OLED_ShowCHineseArray(64,0,(char *)qi);
	OLED_ShowCHineseArray(16,3,(char *)shu);
	OLED_ShowCHineseArray(32,3,(char *)zhi);
	OLED_ShowCHineseArray(48,3,(char *)maohao);
	OLED_ShowString(56,3,(uint8_t *)"N-1");
	OLED_ShowCHineseArray(16,6,(char *)jie);
	OLED_ShowCHineseArray(32,6,(char *)guo);
	OLED_ShowCHineseArray(48,6,(char *)maohao);
	OLED_ShowString(56,6,(uint8_t *)"Y");
	
}

定义 Y N 及其flash的地址

uint32_t N = 0;
uint32_t Y = 1;

uint32_t TestAddr=0x0800F000; 

初始化部分

void Init() {
    // 开发板平台初始化
    BoardInitMcu();
    BoardInitPeriph();
    keys_init();//按键初始化
    setTimer2Callback(Time2Handler);
    Tim2McuInit(1);//定时器初始化,设置定时中断1ms中断一次
	 
}

按键部分

void KeyDownHandler(void) {
	

	if(isKey2Pressed())
	{
		resetKey2();
		N--;
		Y = N-1;
		OLED_ShowNum(56,3,N,3,16);
		OLED_ShowNum(56,6,Y,3,16);
	}
	else	if(isKey3Pressed())
	{
		resetKey3();
		N++;
		Y=N-1;
		OLED_ShowNum(56,3,N,3,16);
		OLED_ShowNum(56,6,Y,3,16);
	}
	else	if(isKey4Pressed())
	{
		resetKey4();
		WriteFlashTest(0x0800F000,N);
		WriteFlashTest(0x0800F000,Y);
		GpioWrite(&Led2,1);
		DelayMs(1000);
		GpioWrite(&Led2,0);
	}

}

主函数

int main( void )
{
	
    Init();
		OLED_Init();
		chushi();
		//USART1_Init(115200);
		
		GpioWrite(&Led2,1);
	  	N = PrintFlashTest(TestAddr);		//读取flash地址的数据
			Y = PrintFlashTest(TestAddr);		//读取flash地址的数据
    	while( 1 )
   		{
			KeyDownHandler();
    	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

施泰克

你的打赏是我最大的鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值