找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1516|回复: 1
收起左侧

求助:在使用keil进行编译时遇到了错误c202

[复制链接]
ID:977576 发表于 2021-11-4 10:05 | 显示全部楼层 |阅读模式
有大佬帮忙看一下应该如何解决该问题吗?所有有Send_bufd的地方都会出现错误c202。改了两天了还是不行555按照网上修改的方法修改以后又会在编译时出现其他问题。希望可以讲的略微详细一点,不清楚应该在哪里加什么才能解决该问题,感谢。是在使用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
/************************************************************************
函 数 名: 串口初始化
功能描述: STC10L08XE 单片机串口初始化函数
返回函数: none
其他说明: none
**************************************************************************/
void UartIni(void)
{
    PCON &= 0x7F;        //波特率不倍速
    SCON = 0x50;        //8位数据,可变波特率
    AUXR |= 0x40;        //定时器1时钟为Fosc,即1T
    AUXR &= 0xFE;        //串口1选择定时器1为波特率发生器
    TMOD &= 0x0F;        //清除定时器1模式位
    TMOD |= 0x20;        //设定定时器1为8位自动重装方式
    TL1 = baud;        //设定定时初值
    TH1 = baud;        //设定定时器重装值
    ET1 = 0;        //禁止定时器1中断
    TR1 = 1;        //启动定时器1


}
/***********************************************************
* 名    称:
* 功    能:
* 入口参数: 无
* 出口参数:无
* 说    明:                     
**********************************************************/
void Uart_Isr() interrupt 4 using 1
{   
    if(RI)
    {   
         
    }

}
/************************************************************************
功能描述:     串口发送一字节数据
入口参数:    DAT:带发送的数据
返 回 值:     none
其他说明:    none
**************************************************************************/
void UARTSendByte(uint16_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++);
    }   
}     

void SendCmd(int len)
{
    int i = 0 ;
    UARTSendByte(0x7E); //起始
    for(i=0; i<len; i++)//数据
    {
        UARTSendByte(Send_buf[i]) ;
    }
    UARTSendByte(0xEF) ;//结束
}

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;    //保留字节
    Send_buf[1] = 0x06;    //长度
    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);       //校验
    SendCmd(8);       //发送此帧数据
}
  
            


回复

使用道具 举报

ID:277550 发表于 2021-11-4 13:28 | 显示全部楼层
检查一下 Send_buf 在哪定义了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表