我们能够学会我们原来不懂的东西。我们不但善于破坏一个旧世界,我们还将善于建设一个新世界。你出来时,肯定和原单位办了脱离关系的手续,极有可能连人际关系都因出国搞僵了。你把你的后路断了,等于破坏了一个旧世界。但别伤心,别后怕。你完全能够建立一个新世界的。——毛泽东
实现了lora-nb的串口接收与发送。代码参上,注释已经备好,放心观看
/**
******************************************************************************
* 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"
#include "usart1-board.h"///////////串口必须头文件
void Init() {
BoardInitMcu();
BoardInitPeriph();
keys_init();//按键初始化
setTimer2Callback(Time2Handler);
Tim2McuInit(1);//定时器初始化,设置定时中断1ms中断一次
USART1_Init(9600);///串口初始化,波特率9600
}
/**
* Main application entry point.
*/
int main( void )
{
Init();
char shuju[11];//接受串口所需要的数据。
while( 1 )
{
if(isKey2Pressed()){//按键2
resetKey2();
USART1_SendStr("你好",4);////串口发送函数,一个中文占两个字节
//串口发送也可以进行赋值
/*
比如
int a=999;
sprintf(shuju,"%d",a);
int sl=strlen(shuju);
USART1_SendStr(shuju,sl);
发送数字数据
shuju[0]=0x01;
shuju[1]=0x02;
USART1_SendStr(shuju,2);
发送16进制数据
*/
}
shuju[0]=USART1_ReceiveData();////串口数据赋值给shuju[0];
int sl=strlen(shuju);////获取数据数据有几位,作为判断条件,而不是一直判断
if(sl!=0){////判断是否接受到
if(shuju[0]==0x01){////判断16进制的数据,是的话开灯。
GpioWrite( &Led1, 0 );
}
}
}
}