|
有大佬幫忙看一下應(yīng)該如何解決該問題嗎?所有有Send_bufd的地方都會(huì)出現(xiàn)錯(cuò)誤c202。改了兩天了還是不行555按照網(wǎng)上修改的方法修改以后又會(huì)在編譯時(shí)出現(xiàn)其他問題。希望可以講的略微詳細(xì)一點(diǎn),不清楚應(yīng)該在哪里加什么才能解決該問題,感謝。是在使用ld3320連接MP3模塊,usart.c部分代碼如下:
#include "config.h"
#define FOSC 22118400L //System frequency
uint32_t baud=0xB8; //0x70->4800,0xB8->9600,0xDC->19200,0xF4->57600,0xFA->115200 //UART baudrate
/************************************************************************
函 數(shù) 名: 串口初始化
功能描述: STC10L08XE 單片機(jī)串口初始化函數(shù)
返回函數(shù): none
其他說明: none
**************************************************************************/
void UartIni(void)
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位數(shù)據(jù),可變波特率
AUXR |= 0x40; //定時(shí)器1時(shí)鐘為Fosc,即1T
AUXR &= 0xFE; //串口1選擇定時(shí)器1為波特率發(fā)生器
TMOD &= 0x0F; //清除定時(shí)器1模式位
TMOD |= 0x20; //設(shè)定定時(shí)器1為8位自動(dòng)重裝方式
TL1 = baud; //設(shè)定定時(shí)初值
TH1 = baud; //設(shè)定定時(shí)器重裝值
ET1 = 0; //禁止定時(shí)器1中斷
TR1 = 1; //啟動(dòng)定時(shí)器1
}
/***********************************************************
* 名 稱:
* 功 能:
* 入口參數(shù): 無
* 出口參數(shù):無
* 說 明:
**********************************************************/
void Uart_Isr() interrupt 4 using 1
{
if(RI)
{
}
}
/************************************************************************
功能描述: 串口發(fā)送一字節(jié)數(shù)據(jù)
入口參數(shù): DAT:帶發(fā)送的數(shù)據(jù)
返 回 值: none
其他說明: none
**************************************************************************/
void UARTSendByte(uint16_t DAT)
{
ES = 0;
TI=0;
SBUF = DAT;
while(TI==0);
TI=0;
ES = 1;
}
/************************************************************************
功能描述: 串口發(fā)送字符串?dāng)?shù)據(jù)
入口參數(shù): *DAT:字符串指針
返 回 值: none
其他說明: API 供外部使用,直觀!
**************************************************************************/
void PrintCom(uint8_t *DAT)
{
while(*DAT)
{
UARTSendByte(*DAT++);
}
}
void SendCmd(int len)
{
int i = 0 ;
UARTSendByte(0x7E); //起始
for(i=0; i<len; i++)//數(shù)據(jù)
{
UARTSendByte(Send_buf[i]) ;
}
UARTSendByte(0xEF) ;//結(jié)束
}
void DoSum( int *Str, int len)
{
int xorsum = 0;
int i;
for(i=0; i<len; i++)
{
xorsum = xorsum + Str[i];
}
xorsum = 0 -xorsum;
*(Str+i) = (int)(xorsum >>8);
*(Str+i+1) = (int)(xorsum & 0x00ff);
}
void Uart_SendCMD(int CMD ,int feedback , int dati)
{
Send_buf[0] = 0xff; //保留字節(jié)
Send_buf[1] = 0x06; //長(zhǎng)度
Send_buf[2] = CMD; //控制指令
Send_buf[3] = feedback;//是否需要反饋
Send_buf[4] = (int)(dati >> 8);//datah
Send_buf[5] = (int)(dati); //datal
DoSum(&Send_buf[0],6); //校驗(yàn)
SendCmd(8); //發(fā)送此幀數(shù)據(jù)
}
|
|