OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4250|回复: 6

啊啊啊啊 奇怪的错误

[复制链接]

5

主题

17

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-12-7
在线时间
10 小时
发表于 2016-12-9 17:49:18 | 显示全部楼层 |阅读模式
2金钱
..\SOURSE\LCD12864.H(4): error C141: syntax error near 'dat', expected ')'
..\SOURSE\LCD12864.H(6): error C141: syntax error near 'com', expected ')'
..\SOURSE\LCD12864.H(7): error C141: syntax error near 'dat', expected ')'
..\SOURSE\LCD12864.H(8): error C141: syntax error near 'x', expected ')'
..\SOURSE\LCD12864.H(9): error C141: syntax error near 'x', expected ')'



H代码
#ifndef __LCD12864_H
#define __LCD12864_H

void Set_byte(u8 dat);
void Busy();
void Writer_com(u8 com);
void Writer_dat(u8 dat);
void Writer_cursor(u8 x,u8 y);
void Writer_string(u8 x,u8 y,u8 *str);
void Init_lcd12864();

#endif

C代码
#include "config.h"
#include "lcd12864.h"

void Set_byte(u8 dat)
{
        u8 i = 0;
        for(i = 0;i < 4;i++)
        {
                e = 1;
            if(dat & 0x80)
                        rw = 1;
                else
                        rw = 0;
                dat <<= 1;
                e = 0;
        }
}

void Busy()
{
        u8 i = 0;
        u8 dat = 0;
        u8 dat1 = 0;
        rs = 0;
        rs = 1;
        Set_byte(0xfc);
        for(i = 0;i < 7;i++)
        {
                if(rw & 0x01)
                        dat = 1;
                else
                        dat = 0;
                dat |= dat;
                dat <<= 1;
        }
        while(dat1 & 0x80);

}
void Writer_com(u8 com)
{
        Busy();
        rs = 0;
           Set_byte(0xf8);//写指令
        Set_byte(com & 0xf0);
        Set_byte(com << 4);

        rs = 1;
}

void Writer_dat(u8 dat)
{
        Busy();
        rs = 0;
        Set_byte(0xfa);
        Set_byte(dat & 0xf0);
        Set_byte(dat << 4);
        rs = 1;
}

void Writer_cursor(u8 x,u8 y)
{
        u8 cursor = 0;         
        switch(x)
        {
                case 1: cursor = 0x80;break;
                case 2: cursor = 0x90;break;
                case 3: cursor = 0x88;break;
                case 4: cursor = 0x98;break;
        }
        cursor = y + cursor;
        Writer_com(cursor);
}

void Writer_string(u8 x,u8 y,u8 *str)
{
        Writer_cursor(x,y);
        while(*str != '\0')
        {
                Writer_dat(*str++);       
        }       
}
void Init_lcd12864()
{
    Writer_dat(0x01);
        Delay_1ms(45);
        Writer_dat(0x30);
        Delay_1us(100);
        Writer_dat(0x30);
        Delay_1us(40);
        Writer_dat(0xC0);
        Delay_1us(100);
        Writer_dat(0x01);
        Delay_1ms(10);
        Writer_dat(0x06);
}

最佳答案

查看完整内容[请看2#楼]

这有什么好奇怪的?很明显是你的自定义数据类型没声明好, #ifndef __LCD12864_H[/backcolor] #define __LCD12864_H[/backcolor] //在这个位子包含你的数据类型重定义头文件或者是实体 void Set_byte(u8 dat);[/backcolor] void Busy();[/backcolor] void Writer_com(u8 com);[/backcolor] void Writer_dat(u8 dat);[/backcolor] void Writer_cursor(u8 x,u8 y);[/backcolor] void Writer_string(u8 x,u8 y,u8 *str ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

54

主题

372

帖子

0

精华

高级会员

Rank: 4

积分
972
金钱
972
注册时间
2016-6-15
在线时间
473 小时
发表于 2016-12-9 17:49:19 | 显示全部楼层
这有什么好奇怪的?很明显是你的自定义数据类型没声明好,

#ifndef __LCD12864_H
#define __LCD12864_H

//在这个位子包含你的数据类型重定义头文件或者是实体

void Set_byte(u8 dat);
void Busy();
void Writer_com(u8 com);
void Writer_dat(u8 dat);
void Writer_cursor(u8 x,u8 y);
void Writer_string(u8 x,u8 y,u8 *str);
void Init_lcd12864();

#endif
回复

使用道具 举报

5

主题

17

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-12-7
在线时间
10 小时
 楼主| 发表于 2016-12-14 17:07:26 | 显示全部楼层
shuaigew88 发表于 2016-12-9 17:49
这有什么好奇怪的?很明显是你的自定义数据类型没声明好,

#ifndef __LCD12864_H

并没有好么   我解决了  是我的lcd12864头文件里面 少了一个头文件的声明
回复

使用道具 举报

54

主题

372

帖子

0

精华

高级会员

Rank: 4

积分
972
金钱
972
注册时间
2016-6-15
在线时间
473 小时
发表于 2016-12-14 18:36:44 | 显示全部楼层
呵呵SS 发表于 2016-12-14 17:07
并没有好么   我解决了  是我的lcd12864头文件里面 少了一个头文件的声明

我上面说的很清楚,你的头文件中缺少数据类型定义。
回复

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11485
金钱
11485
注册时间
2014-4-1
在线时间
1299 小时
发表于 2016-12-14 20:07:13 | 显示全部楼层

语法问题,怎么都好办。


回复

使用道具 举报

5

主题

17

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-12-7
在线时间
10 小时
 楼主| 发表于 2016-12-16 11:51:54 | 显示全部楼层
shuaigew88 发表于 2016-12-14 18:36
我上面说的很清楚,你的头文件中缺少数据类型定义。

只是   少了 头文件   啊啊 但是 没有少数据声明
回复

使用道具 举报

54

主题

372

帖子

0

精华

高级会员

Rank: 4

积分
972
金钱
972
注册时间
2016-6-15
在线时间
473 小时
发表于 2016-12-16 13:59:53 | 显示全部楼层
呵呵SS 发表于 2016-12-16 11:51
只是   少了 头文件   啊啊 但是 没有少数据声明

那是因为你缺少的头文件中正好有数据声明。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-3-13 09:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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