F103 关于UART2的问题 求助朋友们 急!!!

2019-07-21 05:08发布

现使用战舰开发板和GPRS-DTU做一个采集数据加通讯的实验
DTU的例程Slave中是使用的 UART3来做串口的数据接收和发送的,我使用例程并改了下main.c的程序可以将 战舰开发板采集到的温湿度数据通过DTU发送到原子云上,但是由于后面要加上MPU6050占用了UART3的引脚,就打算使用UART2来做通讯,但是将例程中串口的所有配置都改为UART2后,原子云接收不到数据,查了一天了也没弄通,把简单的代码发一下,各位大神朋友能帮忙指点一下么?  
是不是UART2有特殊的配置之类的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
追忆moon
2019-07-21 13:38
这是main.c文件   

#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;
                           }
               }
}

一周热门 更多>