物联网应用技术竞赛——单片机笔记
单片机笔记
1.lora呼吸灯代码
switchLed1Breath(); //开LED1呼吸灯
breathLed(); //开始呼吸
DelayMs(1);
2.lora双击代码
int time=0,js=0;
if(isKey3Pressed()) {
resetKey3();
while(time<=1000) //1s内判断是否再次按下
{
if(isKey3Pressed()){
resetKey3();
js=2; //双击标志位
time=0;
break;
}
else{
time++; //time=time+1;
HAL_Delay(1); //1ms
}
}
if(time>1000){ //1s内没有按下代表是单击
js=1;
time=0;
}
}
3.继电器端口号
双联继电器(P1_7第一联,P2_0第二联)
单联继电器(P2_0)
4.lora输出
USART1_Init(115200);//串口1初始化
printf(" ");
5.lora获取模拟量数据(获取ADC1_IN0(PA_0)的电压值--------光照 空气 火焰 可燃气体)
Adc_t adc;
AdcInit(&adc, PA_0);//初始化adc 光照值是读取PA_0处电压
-------------------------
uint16_t ADC0Value,v,light;
ADC0Value=AdcReadChannel( &adc,0); //adc精度12位,参考电压3.3v
v=ADC0Value*3300/(4096-1.0);//得到传感器电压值,单位:mV
light=(5/2.0)*(v/10.0);
6.lora获取开关量数据(读取PA_1引脚值-------人体 红外 声音)
HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1)
7.获取数字量传感器(温湿度)
#include "sht3x.h"
-------------------------
float tem;
float humi;
char a[32]={0};
hal_temHumInit();
-------------------------
call_sht11(&tem, &humi);
sprintf(a,"%.2f",tem); //格式成保留两位的字符串,将float转换成字符串
8.Zigbee获取温湿度
#include "sht.h"
-------------------------
float temp,humi;
SHT_Init();
-------------------------
call_sht11(&temp,&humi);
uart_printf("温度:%f,湿度:%f",temp,humi);
添加头文件
9.Zigee输出
#include "UART_PRINT.h"
-------------------------
halBoardInit();
uart_printf("温度:%f",temp);
10.Zigbee获取模拟量数据
#include "get_adc.h"
-------------------------
float value;
value=get_adc();// AD值转化成电压值,得到传感器电压值,单位:V
11.读取开关量值
uint8 a;
P0SEL &= ~( 1 <<1); //设置p0.1为普通i/o口
P0DIR &= ~( 1 <<1); //设置p0.1为输入口
a=P0_1;
12.Zigbee点灯
SEL &= ~( 1 <<1); //设置p0.1为普通i/o口
P0DIR &= ~( 1 <<1); //设置p0.1为输入口
a=P0_1;