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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3314|回復: 3
收起左側

編的時候static INT8U Send_buf[10]={0};總是出錯

[復制鏈接]
ID:235168 發表于 2017-9-23 20:51 | 顯示全部樓層 |閱讀模式
#include <reg52.h>

#define COMM_BAUD_RATE  9600    //串口波特率
#define OSC_FREQ       11059200    //運行晶振:11.05926MH
static INT8U Send_buf[10]={0};
void Delay_Ms(INT32U z)//
{
        INT32U x=0 , y=0;//
        for(x=110 ; x>0 ;x--)//
        for(y=z; y>0;y-- );//
}
//
/******************************************************************************
- 功能描述: 串口1初始化
- 注:             設置為9600波特率
******************************************************************************/
void Serial_init(void)
{
        TMOD = 0x20;//                // 設置 T1 為波特率發生器
        SCON = 0x50;//                // 0101,0000 8位數據位, 無奇偶校驗               
        PCON = 0x00;//                //PCON=0;
        TH1=256-(OSC_FREQ/COMM_BAUD_RATE/32/12);//設置為9600波特率
        TL1=256-(OSC_FREQ/COMM_BAUD_RATE/32/12);
    TR1  = 1;//                            //定時器1打開
    REN = 1;//                           //串口1接收使能
    ES= 1;//                           //串口1中斷使能
}
void Uart_PutByte(INT8U ch)//
{
    SBUF  = ch;//
    while(!TI){;}//
    TI = 0;//
}

/******************************************************************************
- 功能描述: 串口向外發送命令[包括控制和查詢]
- 參數說明: CMD:表示控制指令,請查閱指令表,還包括查詢的相關指令
              feedback:是否需要應答[0:不需要應答,1:需要應答]
              data:傳送的參數
******************************************************************************/
void SendCmd(INT8U len)
{
    INT8U i = 0 ;//
    Uart_PutByte(0x7E); //起始
    for(i=0; i<len; i++)//數據
    {
                Uart_PutByte(Send_buf[i]);//
    }
    Uart_PutByte(0xEF);//結束
}

/******************************************************************************
- 功能描述:求和校驗
- 和校驗的思路如下:      
    發送的指令,去掉起始和結束。將中間的6個字節進行累加,最后取反碼。接收端就將接收到的一幀數據,去掉起始和結束。將中間的數據累加,再加上接收到的校驗字節。剛好為0.這樣就代表接收到的數據完全正確。
******************************************************************************/
void DoSum( INT8U *Str, INT8U len)
{
    INT16U xorsum = 0;//
    INT8U i;//
    for(i=0; i<len; i++)//
    {//
        xorsum  = xorsum + Str[i];//
    }//
        xorsum     = 0 -xorsum;//
        *(Str+i)   = (INT8U)(xorsum >>8);//
        *(Str+i+1) = (INT8U)(xorsum & 0x00ff);//
}

void Uart_SendCMD(INT8U CMD ,INT8U feedback , INT16U dat)
{
Send_buf[0] = 0xff;//保留字節
Send_buf[1] = 0x06; //長度
Send_buf[2] = CMD;//控制指令
Send_buf[3] = feedback;//是否需要反饋
Send_buf[4] = (INT8U)(dat >> 8);//datah
Send_buf[5] = (INT8U)(dat);//datal
DoSum(&Send_buf[0],6);//校驗
SendCmd(8);//發送此幀數據
}

void main()
{
        Serial_init();//串口寄存器的初始化設置
    Uart_SendCMD(0x03 , 0 , 0x01) ;//播放第一首
    Delay_Ms(1000) ;//延時大概6S
    Uart_SendCMD(0x03 , 0 , 0x02) ;//播放第二首
    Delay_Ms(1000) ;//延時大概6S
    Uart_SendCMD(0x03 , 0 , 0x04) ;//播放第四首
    while(1) ;
}


編的時候static INT8U Send_buf[10]={0};總是出錯,

錯誤提示C6: error C129: missing  `;` before `send_buf `

回復

使用道具 舉報

ID:213173 發表于 2017-9-24 07:58 | 顯示全部樓層
沒有聲明自定義數據類型:INT8、INT16、INT32。
回復

使用道具 舉報

ID:283448 發表于 2018-2-12 22:43 | 顯示全部樓層
樓主,你是用單片機控制DFplayer MINI模塊嗎,我現在碰到了一些問題,不知道單片機怎么與它通信,發送指令也無反應,你能給下你改后的程序嗎?
回復

使用道具 舉報

ID:283448 發表于 2018-2-12 22:49 | 顯示全部樓層
樓主,請問你是用單片機控制的DFplayer mini模塊嗎?我現在用單片機串口發送指令,它完全沒反應,能給一份你改好的程序嗎?感謝!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91国产在线视频在线 | 精品一区在线免费观看 | 亚洲精品白浆高清久久久久久 | а_天堂中文最新版地址 | 日韩精品一区二区三区中文在线 | 国产成人网 | 先锋资源吧 | 久久黄网 | 中文字幕一区二区视频 | 激情欧美一区二区三区 | 欧美成人精品激情在线观看 | 国产精品美女久久久久久免费 | 免费精品久久久久久中文字幕 | 五月天综合影院 | 奇米av| 久久久久久国产精品免费免费 | 久久久久久久久淑女av国产精品 | 麻豆视频在线免费观看 | 国产日韩精品在线 | 国产精品揄拍一区二区 | 亚洲欧美久久 | av一二三区| www.欧美 | 久久亚洲天堂 | 久久精品国产亚洲a | 精品美女视频在线观看免费软件 | 日韩中文久久 | 欧美精品在线免费观看 | 国产一区在线看 | 不卡视频一区 | 日韩精品成人在线 | 99成人免费视频 | 精品成人在线观看 | 久久天堂| 欧美aaa级 | 国产一级电影在线观看 | 午夜影院免费体验区 | 日本一区二区三区在线观看 | 风间由美一区二区三区在线观看 | 最新黄色在线观看 | 日日日操 |