欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 這個C語言程序send_buf[]函數怎么定義? [打印本頁]

作者: 57185490    時間: 2021-12-25 11:16
標題: 這個C語言程序send_buf[]函數怎么定義?

定義語法是什么 ,在哪個文件夾里定義好?
謝謝啊
#include "config.h"
#define FOSC 22118400L      //System frequency
uint32_t baud=9600;           //UART baudrate
/************************************************************************
函 數 名: 串口初始化
功能描述: STC10L08XE 單片機串口初始化函數
返回函數: none
其他說明: none
**************************************************************************/
void UartIni(void)
{
    SCON = 0x50;            //8-bit variable UART
    TMOD = 0x20;            //Set Timer1 as 8-bit auto reload mode
    TH1 = TL1 = -(FOSC/12/32/baud); //Set auto-reload vaule
    TR1 = 1;                //Timer1 start run
    ES = 1;                 //Enable UART interrupt
    EA = 1;                 //Open master interrupt switch
}
/***********************************************************
* 名    稱:
* 功    能:
* 入口參數: 無
* 出口參數:無
* 說    明:                                          
**********************************************************/
void Uart_Isr() interrupt 4 using 1
{        
        if(RI)
        {        
                  
        }

}
/************************************************************************
功能描述:         串口發送一字節數據
入口參數:        DAT:帶發送的數據
返 回 值:         none
其他說明:        none
**************************************************************************/
void UARTSendByte(uint8_t DAT)
{
        ES  =  0;
        TI=0;
        SBUF = DAT;
        while(TI==0);
        TI=0;
        ES = 1;
}
/************************************************************************
功能描述: 串口發送字符串數據
入口參數:         *DAT:字符串指針
返 回 值: none
其他說明: API 供外部使用,直觀!
**************************************************************************/
void PrintCom(uint8_t *DAT)
{
        while(*DAT)
        {
                 UARTSendByte(*DAT++);
        }        
}


         /******************************************************************************
- 功能描述:  串口向外發送命令[包括控制和查詢]
- 參數說明:CMD:表示控制指令,請查閱指令表,還包括查詢的相關指令
feedback:是否需要應答[0:不需要應答,1:需要應答]
data:傳送的參數
******************************************************************************/
void SendCmd(uint8_t len)
{
uint8_t i = 0 ;
UARTSendByte(0x7E); //起始
for(i=0; i<len; i++)//數據
{
UARTSendByte(Send_buf[ i][ i]) ;
}
UARTSendByte(0xEF) ;//結束
}
/******************************************************************************
- 功能描述:求和校驗
- 和校驗的思路如下:
發送的指令,去掉起始和結束。將中間的6個字節進行累加,最后取反碼。接收端就將
接收到的一幀數據,去掉起始和結束。將中間的數據累加,再加上接收到的校驗字節。剛好
為0.這樣就代表接收到的數據完全正確。
******************************************************************************/
void DoSum( uint8_t *Str, uint8_t len)
{
uint16_t xorsum = 0;
uint8_t i;
for(i=0; i<len; i++)
{
xorsum = xorsum + Str[ i];
}
xorsum = 0 -xorsum;
*(Str+i) = (uint8_t)(xorsum >>8);
*(Str+i+1) = (uint8_t)(xorsum & 0x00ff);
}
void Uart_SendCMD(uint8_t CMD ,uint8_t feedback , uint16_t dat)
{
Send_buf[0] = 0xff;                           //保留字節
Send_buf[1] = 0x06;                          //長度
Send_buf[2] = CMD;                           //控制指令
Send_buf[3] = feedback;                      //是否需要反饋
Send_buf[4] = (uint8_t)(dat >> 8);             //datah
Send_buf[5] = (uint8_t)(dat);                 //datal
DoSum(&Send_buf[0],6);                        //校驗
SendCmd(8);                                   //發送此幀數據
}


作者: 人工置頂員    時間: 2021-12-25 17:50
頂一下
作者: 57185490    時間: 2021-12-26 12:02
已解決
作者: 田賀    時間: 2021-12-26 20:54
你這個send_buf是變量而不是函數。
簡單點的,在Uart_SendCMD函數開頭直接聲明一個uint8_t Send_buf[6]




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1