久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1501|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)寫(xiě)了一個(gè)正點(diǎn)原子lora模塊點(diǎn)對(duì)點(diǎn)級(jí)聯(lián)傳輸代碼,打印函數(shù)不正常

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1031844 發(fā)表于 2022-6-2 20:15 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我是初學(xué)者。想請(qǐng)教一點(diǎn)遇到的問(wèn)題。用stc12c5a60s2寫(xiě)了一個(gè)用正點(diǎn)原子lora模塊點(diǎn)對(duì)點(diǎn)級(jí)聯(lián)傳輸?shù)拇a。

寫(xiě)的比較簡(jiǎn)單,調(diào)試串口的時(shí)候,打印函數(shù)一直沒(méi)有正常工作。
能不能幫我看一下是哪里出了問(wèn)題。謝謝。

單片機(jī)源程序如下:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include "typedef.h"
#include "gpio.h"
#include "intrins.h"
#include"string.h"

unsigned char send_lora_buf[]="AT\r\n";
unsigned char recv_lora_buf[16]={0};        //查詢本機(jī)lora地址,返回格式是+ADDR:00,00
unsigned char lora_addr[2]={0};  //本機(jī)lora地址
unsigned char next_lora_addr[2]={0}; //要發(fā)送的lora地址
unsigned char send_data[20]={0};//lora發(fā)送給下一個(gè)字符串
unsigned char chn[1]={0x00};//信道
unsigned char recv_data[10]={0}; //接收收到的數(shù)據(jù)
unsigned char flag = 0;
unsigned char temp = 0;

int hex_to_dec(char *a)//十六進(jìn)制數(shù)轉(zhuǎn)十進(jìn)制數(shù)
{
    int len = strlen(a);
    int sum = 0;
        int i;
    for (i = 0;i < len;i++)
    {
        if(a[ i] >= 'A' && a[ i] <= 'F')
        {
            a[ i] = (int) (a[ i] - 'A') + 10 + '0';
        }
        if(a[ i] >= 'a' && a[ i] <= 'f')
        {
            a[ i] = (int) (a[ i] - 'a') + 10 + '0';
        }
        sum += (a[ i] - '0') * (pow(16.0,len - 1 - i));
    }
    return sum;
}

void uartInit(void)        //串口初始化
{
          SCON = 0x50;//   
          AUXR |= 0x40;//
          AUXR &= 0xFE;
    TMOD &= 0x0F; //
        TL1 =0xE8;//        
        TH1 =0xFF; //   
        TR1 = 1; //   
        ET1 = 0; //
    EA = 1;        //允許中斷
        ES = 1;        //允許串口中斷
        TI = 1;
        // P30 RX P31 TX
}

void delay_ms(int n)                //@11.0592MHz
{
    while(n--)                //將延時(shí)一毫秒的程序循環(huán)執(zhí)行n次,通過(guò)形參來(lái)調(diào)節(jié)延時(shí)的時(shí)長(zhǎng)
    {
            unsigned char i, j;

            i = 2;
            j = 199;
            do
            {
                    while (--j);
            } while (--i);
    }
}

void uartsenddata(unsigned char c) //串口發(fā)送單個(gè)字節(jié)
{  
    SBUF = c;  
    while(!TI);    //若TI=0,在此等待  
    TI = 0;   
}

void uartsendstring(char *s)  //串口發(fā)送字符串
{
        while (*s){                  //檢測(cè)字符串結(jié)束標(biāo)志
            uartsenddata(*s++);
        }
}


void main(void)
{
    u8 addr_doc = 0;//地址十進(jìn)制數(shù)
          uartInit();        //使能串口115200
        printf("send_lora_buf:%s",send_lora_buf);
        P33 = 1;//MD0拉高,和LORA通訊,接收地址。
        P32 = 0;
        delay_ms(40);
        uartsendstring(send_lora_buf);        //串口發(fā)送查詢地址命令
        delay_ms(70);
        if(flag ==1)
        {
         strcpy(recv_lora_buf,recv_data);//接收到lora應(yīng)答
         printf("recv_data:%s",recv_data);
         printf("recv_lora_buf:%s",recv_lora_buf);
        }

        P33 = 0; //關(guān)閉lora查詢
    delay_ms(40);

        lora_addr[0]= recv_lora_buf[7];        //獲取本機(jī)地址高位
        lora_addr[1]= recv_lora_buf[9]; //獲取本機(jī)地址低位

        addr_doc = hex_to_dec(lora_addr); //將十六進(jìn)制地址轉(zhuǎn)十進(jìn)制
        addr_doc+=1;
        sprintf(next_lora_addr,"%X",addr_doc); //將地址轉(zhuǎn)為十六進(jìn)制數(shù)

        while(1)
        {
         printf("waiting...");
     //接收到數(shù)據(jù)
         if(flag ==1)
         {
         flag =0;
         strcat(send_data,next_lora_addr);
         strcat(send_data,chn);
         strcat(send_data,recv_data);//地址信道發(fā)送內(nèi)容拼成數(shù)據(jù)包
         }
         printf("send_data:%s",send_data);        
        uartsendstring(send_data);
        }

}

void UART_1Interrupt() interrupt 4                //串口中斷函數(shù)接收程序
{  
        static unsigned char i;        
        if (RI){            
                RI=0;  
                  temp = SBUF;
                recv_data[ i]=temp;//接收到的數(shù)據(jù)存入數(shù)組recv_data中
                i++;
                if(temp==0x0D){
                        i=0;
                        flag=1;//定義接收完成標(biāo)志位
                }                        
        }
}

原理圖.pdf

108.27 KB, 下載次數(shù): 19

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1011441 發(fā)表于 2022-9-9 17:04 | 只看該作者
樓主解決問(wèn)題了嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久国产一区二区三区不卡 | av在线一区二区三区 | 欧美日韩高清一区二区三区 | 视频在线一区二区 | 色婷婷精品久久二区二区蜜臂av | 天天av天天好逼 | 激情毛片 | 久久久久国产 | av网站在线免费观看 | 亚洲一区久久 | 国产精品一卡二卡三卡 | 中文字幕福利视频 | 自拍视频一区二区三区 | 日本一二三区高清 | 精品视频久久久久久 | 国产精品久久久久久亚洲调教 | 免费人成激情视频在线观看冫 | 久久精品成人热国产成 | 久久一区二区三区免费 | 91精品综合久久久久久五月天 | 国产 亚洲 网红 主播 | 精品福利视频一区二区三区 | 久久99深爱久久99精品 | 国产黄色麻豆视频 | 国产视频中文字幕在线观看 | 欧美日韩在线免费观看 | 亚洲成人精品 | aaa级片| 久久国产秒 | 看a网站 | 亚洲国产精品一区二区三区 | 欧美日韩在线免费 | 婷婷去俺也去 | 韩日一区 | 欧美一级二级视频 | 日韩一区二区三区四区五区 | 成人中文字幕在线观看 | 国产精品视频免费看 | 视频三区| 国产女人与拘做受视频 | 国产高潮好爽受不了了夜夜做 |