高职物联网模拟4
题目
利用提供的 NBIOT 通用库项目工程,找一块 NB-IOT 模块进行开发。
**任务要求: **
1. 运行二维码识别生成具,在文本信息输入框中,输入“2021 年物联网高职赛项”+【工位号】+“号工位”,版本自动,模块大小 5,生成二维码并保存图片至“提交资料\模块 C\题 3”目录下。
2. 在 NB-IOT 节点盒模块的液晶屏上显示上面生成的二维码图片,要求最终液晶屏显示的二维码高度不小于液晶屏 1/2 高度。


分析
- 液晶屏为64*128将图片设置为64 * 64
- 直接调用
OLED_DrawBMP(32,0,64,64,bmp);
代码
/**
******************************************************************************
* File Name : main.c
* Description : Main program body
******************************************************************************
*/
#include <string.h>
#include "board.h"
#include "hal_key.h"
#include "tim-board.h"
#include "timer_handles.h"
/*--------------------------------- 取模-----------------------------------------*/
/*二维码*/
uint8_t bmp[] = {
0xFF,0xFF,0x03,0x03,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0x03,0x03,0xFF,0xFF,0x00,0x00,
0x00,0xFC,0xFC,0xCF,0xCF,0xC0,0xC0,0x30,0x30,0xC0,0xC0,0x00,0x00,0xCF,0xCF,0x00,
0x00,0x33,0x33,0x0C,0x0C,0xC3,0xC3,0xFC,0xFC,0x3C,0x3C,0xFF,0xFF,0xC3,0xC3,0xC3,
0x00,0x00,0xFF,0xFF,0x03,0x03,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0x03,0x03,0xFF,0xFF,
0x3F,0x3F,0x30,0x30,0x33,0x33,0x33,0x33,0x33,0x33,0x30,0x30,0x3F,0x3F,0x00,0x00,
0xF3,0xCC,0xCC,0xFF,0xFF,0xCC,0xCC,0x30,0x30,0x00,0x00,0xFC,0xFC,0xCF,0xCF,0xFF,
0xFF,0x03,0x03,0xF0,0xF0,0x0C,0x0C,0xFF,0xFF,0xC3,0xC3,0x3F,0x3F,0xC3,0xC3,0x33,
0x00,0x00,0x3F,0x3F,0x30,0x30,0x33,0x33,0x33,0x33,0x33,0x33,0x30,0x30,0x3F,0x3F,
0x1E,0x1E,0x9E,0x9E,0x19,0x19,0xE1,0xE1,0x66,0x66,0x80,0x80,0x99,0x99,0xFF,0xFF,
0xE7,0xF8,0xF8,0xE1,0xE1,0xE6,0xE6,0x7F,0x7F,0xFF,0xFF,0x19,0x19,0xFF,0xFF,0xE0,
0xE0,0x19,0x19,0xE0,0xE0,0x9F,0x9F,0x66,0x66,0x98,0x98,0x1E,0x1E,0x86,0x86,0xF9,
0x61,0x61,0x19,0x19,0x80,0x80,0x1F,0x1F,0x98,0x98,0x06,0x06,0x00,0x00,0x86,0x86,
0x78,0x78,0xE7,0xE7,0xF8,0xF8,0x19,0x19,0x9E,0x9E,0x79,0x79,0x99,0x99,0x67,0x67,
0x19,0xE1,0xE1,0x19,0x19,0x67,0x67,0x98,0x98,0xE1,0xE1,0x18,0x18,0xE7,0xE7,0x01,
0x01,0x60,0x60,0xFF,0xFF,0xE1,0xE1,0xE0,0xE0,0x1F,0x1F,0xE0,0xE0,0x67,0x67,0x01,
0x80,0x80,0x7E,0x7E,0x61,0x61,0xE0,0xE0,0xE1,0xE1,0x00,0x00,0x1E,0x1E,0xE1,0xE1,
0xE6,0xE6,0xF9,0xF9,0x81,0x81,0x86,0x86,0x81,0x81,0x66,0x66,0x99,0x99,0x06,0x06,
0xF8,0x61,0x61,0xE6,0xE6,0x1E,0x1E,0x87,0x87,0x9F,0x9F,0x00,0x00,0x9F,0x9F,0x7E,
0x7E,0xE0,0xE0,0xE1,0xE1,0x1F,0x1F,0x87,0x87,0x66,0x66,0x19,0x19,0x98,0x98,0x9E,
0x87,0x87,0x66,0x66,0x7E,0x7E,0x81,0x81,0xE1,0xE1,0x80,0x80,0x60,0x60,0x7F,0x7F,
0x87,0x87,0x67,0x67,0xF9,0xF9,0x81,0x81,0x79,0x79,0x66,0x66,0x99,0x99,0x7E,0x7E,
0x87,0x60,0x60,0x7F,0x7F,0xF8,0xF8,0x61,0x61,0xE1,0xE1,0x98,0x98,0x87,0x87,0xFE,
0xFE,0x79,0x79,0x1F,0x1F,0x60,0x60,0x81,0x81,0x7E,0x7E,0x78,0x78,0x19,0x19,0x87,
0x99,0x99,0xE0,0xE0,0xFE,0xFE,0x81,0x81,0x9F,0x9F,0x79,0x79,0xE6,0xE6,0x7E,0x7E,
0xFC,0xFC,0x0C,0x0C,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x0C,0x0C,0xFC,0xFC,0x00,0x00,
0x0F,0xC3,0xC3,0x0C,0x0C,0x0C,0x0C,0xCF,0xCF,0x33,0x33,0xFC,0xFC,0x3F,0x3F,0xC3,
0xC3,0xFF,0xFF,0xFC,0xFC,0xC3,0xC3,0xC0,0xC0,0x30,0x30,0x3F,0x3F,0x0F,0x0F,0xFF,
0xC0,0xC0,0xCC,0xCC,0xC0,0xC0,0xFF,0xFF,0xCF,0xCF,0xF0,0xF0,0x00,0x00,0x3F,0x3F,
0xFF,0xFF,0xC0,0xC0,0xCF,0xCF,0xCF,0xCF,0xCF,0xCF,0xC0,0xC0,0xFF,0xFF,0x00,0x00,
0x0F,0x3F,0x3F,0xCF,0xCF,0xC3,0xC3,0xCC,0xCC,0x33,0x33,0xCF,0xCF,0xF3,0xF3,0x33,
0x33,0xF3,0xF3,0x0F,0x0F,0x3F,0x3F,0x03,0x03,0x3C,0x3C,0x00,0x00,0x33,0x33,0x0C,
0xC0,0xC0,0x33,0x33,0x00,0x00,0xCF,0xCF,0x3C,0x3C,0x03,0x03,0x03,0x03,0x33,0x33};
/*----------------------------------------------------------------------------------*/
/**********************************************************************************************
*函数:void Init( void )
*功能:平台初始化
*输入:无
*输出:无
*特殊说明:无
**********************************************************************************************/
void Init() {
// 开发板平台初始化
BoardInitMcu();
BoardInitPeriph();
keys_init();//按键初始化
setTimer2Callback(Time2Handler);
Tim2McuInit(1);//定时器初始化,设置定时中断1ms中断一次
}
/**********************************************************************************************
*函数:void KeyDownHandler( void )
*功能:按钮事件监听
*输入:无
*输出:无
*特殊说明:无
**********************************************************************************************/
void KeyDownHandler(void) {
}
/**********************************************************************************************
*函数:void handlerPre10Ms( void )
*功能:10毫秒循环
*输入:无
*输出:无
*特殊说明:循环处理总时长300ms
**********************************************************************************************/
void handlerPre10Ms(void) {
for (int delay = 0; delay < 30; delay++) {
HAL_Delay(10);
}
}
/**
* Main application entry point.
*/
int main(void)
{
Init();
OLED_Init();
OLED_Clear();
OLED_DrawBMP(32,0,64,64,bmp);
while( 1 )
{
}
}