找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3045|回复: 13
打印 上一主题 下一主题
收起左侧

对不起我我我真的不知道为什么温控2.0.C(47): error C141: syntax error near ';'

[复制链接]
跳转到指定楼层
楼主
ID:260413 发表于 2017-12-19 20:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#include<intrins.h>   
#define  uint unsigned int;   
#define  uchar unsigned char;
uchar dat,i,cmd,temp,num;
uint AD_Value;
uint x,y,z;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
sbit wela=P2^6;
sbit dula=P2^7;
sbit DOUT = P3 ^ 7;  
sbit CLK  = P3 ^ 6;  
sbit DIN  = P3 ^ 4;   
sbit CS   = P3 ^ 5;   
void delay(uint);
void SPI_Write();
uint SP_Read()  ;
uint Read_AD_Data();
void main()
{ while(1)
    {
SP_Read();
SPI_Write(dat);
Read_AD_Data(cmd);
    temp=0xfe;
    P1=temp;
    dula=1;
P0=table[AD_Value];
dula=0;
wela=1;
P0=0xc0;
wela=0;
num=1;
delay(10);
temp=_crol_(temp,1);
P1=temp;
delay(100);
   
}
}

void delay(uint z)
{  uint x,y;
   for(x=z;x>0;x--){
   for(y=110;y>0;y--){};
   };
}  
void SPI_Write(uchar dat)
{
    uchar i;
    CLK = 0;
    for(i=0; i<8; i++)
    {
        DIN = dat >> 7;     
        dat <<= 1;
        CLK = 0;            
        CLK = 1;
    }
}
uint SP_Read(void)
{
    uint i, dat = 0;
    CLK = 0;
    for(i = 0; i < 12; i++)     
    {
        dat <<= 1;
        CLK = 1;
        CLK = 0;
        dat |= DOUT;
    }
    return dat;
}
uint Read_AD_Data(uchar cmd)
{
    CLK = 0;
    CS  = 0;
    SPI_Write(cmd);
    for(i = 6; i > 0; i--);   
    CLK = 1;      
    _nop_();
    _nop_();
    CLK = 0;
    _nop_();
    _nop_();
    AD_Value = SPI_Read();
    CS = 1;
    return AD_Value;   
}


耽误各位时间了真的抱歉,我就是想用xpt2046做一个简单的温度测试装置....读了芯片资料,看了时序图,写了这个东西....但是
Build target 'Target 1'
compiling 温控2.0.c...
温控2.0.C(19): error C141: syntax error near ';'
温控2.0.C(47): error C141: syntax error near ';'
温控2.0.C(53): error C141: syntax error near ';'
温控2.0.C(83): error C141: syntax error near ';'
Target not created

可以帮我看看哪儿有问题吗。。。main函数先不管也行,那个ad操作有问题吗QAQ
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:260413 发表于 2017-12-19 20:44 | 只看该作者
我改了一下....可还是错的void main() {        while(1)     {         SP_Read();         Read_AD_Data(0xD4);     temp=0xfe;     P1=temp;     dula=1;         P0=table[AD_Value];         dula=0;         wela=1;         P0=0xc0;         wela=0;         num=1;         delay(10);         temp=_crol_(temp,1);         P1=temp;         delay(100);                             } }
回复

使用道具 举报

板凳
ID:260413 发表于 2017-12-19 20:45 | 只看该作者
大佬可以考虑留下支付宝我交学费QAQ
回复

使用道具 举报

地板
ID:47286 发表于 2017-12-19 20:45 | 只看该作者
你别扔上来让我们找啊 你直接双击 "温控2.0.C(83): error C141: syntax error near ';'" 会直接到出错的位置 自己看啊 少写了";"
回复

使用道具 举报

5#
ID:260413 发表于 2017-12-19 23:01 | 只看该作者
dzbj 发表于 2017-12-19 20:45
你别扔上来让我们找啊 你直接双击 "温控2.0.C(83): error C141: syntax error near ';'" 会直接到出错的位 ...

我双击了....但是这个意思不是句法错误吗?我没有漏打;....
回复

使用道具 举报

6#
ID:213173 发表于 2017-12-20 07:04 | 只看该作者
错误如下:
#define  uint unsigned int; #define  uchar unsigned char;多了冒号。
void SPI_Write();uint Read_AD_Data();括号内少了参数数据类型声明。
AD_Value = SPI_Read();与声明的函数名称不一致。
回复

使用道具 举报

7#
ID:213173 发表于 2017-12-20 07:28 | 只看该作者
这是改后的程序,编译可以通过。
#include<reg52.h>
#include<intrins.h>   
#define  uint unsigned int//;   
#define  uchar unsigned char//;
uchar dat,i,cmd,temp,num;
uint AD_Value;
uint x,y,z;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
sbit wela=P2^6;
sbit dula=P2^7;
sbit DOUT = P3 ^ 7;  
sbit CLK  = P3 ^ 6;  
sbit DIN  = P3 ^ 4;   
sbit CS   = P3 ^ 5;   
void delay(uint);
void SPI_Write(uchar);
uint SPI_Read();
uint Read_AD_Data(uchar);

void main()
{
        while(1)
        {
                SPI_Read();
                SPI_Write(dat);
                Read_AD_Data(cmd);
                temp=0xfe;
                P1=temp;
                dula=1;
                P0=table[AD_Value];
                dula=0;
                wela=1;
                P0=0xc0;
                wela=0;
                num=1;
                delay(10);
                temp=_crol_(temp,1);
                P1=temp;
                delay(100);        
        }
}

void delay(uint z)
{  
    uint x,y;
    for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}  
void SPI_Write(uchar dat)
{
    uchar i;
    CLK = 0;
    for(i=0; i<8; i++)
    {
        DIN = dat >> 7;     
        dat <<= 1;
        CLK = 0;            
        CLK = 1;
    }
}
uint SPI_Read()
{
    uint i, dat = 0;
    CLK = 0;
    for(i = 0; i < 12; i++)     
    {
        dat <<= 1;
        CLK = 1;
        CLK = 0;
        dat |= DOUT;
    }
    return dat;
}
uint Read_AD_Data(uchar cmd)
{
    CLK = 0;
    CS  = 0;
    SPI_Write(cmd);
    for(i = 6; i > 0; i--);   
    CLK = 1;      
    _nop_();
    _nop_();
    CLK = 0;
    _nop_();
    _nop_();
    AD_Value = SPI_Read();
    CS = 1;
    return AD_Value;   
}
回复

使用道具 举报

8#
ID:164602 发表于 2017-12-20 08:01 | 只看该作者
你的程序,最大的错误在3行、4行:不能有分号。
20行:没有行参
22行:没有行参

这些都改好了,还有三个警告,自己看看吧。
回复

使用道具 举报

9#
ID:231046 发表于 2017-12-20 08:27 | 只看该作者
看看定位到错误的附近这几行也看看那里漏:
回复

使用道具 举报

10#
ID:264113 发表于 2017-12-20 10:17 来自手机 | 只看该作者
#define后面不用;啊
回复

使用道具 举报

11#
ID:260413 发表于 2017-12-21 14:53 来自手机 | 只看该作者
沐林枫 发表于 2017-12-20 10:17
#define后面不用;啊

哇真的!谢谢大佬!!!
回复

使用道具 举报

12#
ID:260413 发表于 2017-12-21 14:54 来自手机 | 只看该作者
wulin 发表于 2017-12-20 07:28
这是改后的程序,编译可以通过。
#include
#include   

谢谢!真的w
回复

使用道具 举报

13#
ID:268713 发表于 2018-1-3 22:38 | 只看该作者
大佬,看看你原理图
回复

使用道具 举报

14#
ID:231046 发表于 2018-1-4 09:20 | 只看该作者
不是一古脑子看出来就编译呀,写一会儿先编译通过 再写
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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