现使用战舰开发板和GPRS-DTU做一个采集数据加通讯的实验
DTU的例程Slave中是使用的 UART3来做串口的数据接收和发送的,我使用例程并改了下main.c的程序可以将 战舰开发板采集到的温湿度数据通过DTU发送到原子云上,但是由于后面要加上MPU6050占用了UART3的引脚,就打算使用UART2来做通讯,但是将例程中串口的所有配置都改为UART2后,原子云接收不到数据,查了一天了也没弄通,把简单的代码发一下,各位大神朋友能帮忙指点一下么?
是不是UART2有特殊的配置之类的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
#include "RingBuffer.h"
#include "protocol.h"
#include "adc.h"
#include "lsens.h"
#include "dht11.h"
#include "uart2.h"
int main(void)
{
u8 aa = 15;
u8 bb = 01;
//温湿度定义
u8 t=0;
u8 temperature1;
u8 humidity1;
u8 temperature2;
u8 humidity2;
//光敏传感器定义
u8 adcx;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
uart2_init(115200);
LED_Init();
Lsens_Init();
DHT11_Init();
my_mem_init(SRAMIN); //初始化内存池
pUart2RxBuf = RingBuffer_Malloc(1024); //在内存池中分配串口2接收缓存1K
while(DHT11_Init()) //DHT11初始化
{
}
while(1)
{
if(t%10==0) //每100ms读取一次
{
DHT11_D_Read_Data(&temperature1,&humidity1); //读取温湿度
DHT11_G_Read_Data(&temperature2,&humidity2);
adcx=Lsens_Get_Val(); //读取光照
//向DTU发送温湿度+光照数据
USART_SendData(USART2,temperature2);
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);
USART_SendData(USART2,humidity2);
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);
USART_SendData(USART2,adcx);
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);
}
delay_ms(100);
t++;
if(t==20)
{
t=0;
LED0=!LED0;
}
}
}
一周热门 更多>