问题:编译后给了四个警告,上网查说是类型不匹配造成的,但是自己定义的这些函数类型都是一样的呀,完全不知道是哪里出了问题
/*这是lcd1602.c模块*/
#include "config.h"
#include "lcd1602.h"
void LCD_Read_busy()
{
uchar busy;
LCD1602_DB = 0xff;
LCD1602_RS = 0;
LCD1602_RW = 1;
do
{
LCD1602_EN = 1;
busy = LCD1602_DB;
LCD1602_EN = 0;
}
while(busy & 0x80);
}
void LCD_Write_cmd(uchar cmd)
{
LCD_Read_busy();
LCD1602_RS = 0;
LCD1602_RW = 0;
LCD1602_DB = cmd;
LCD1602_EN = 1;
LCD1602_EN = 0;
}
void LCD_Write_dat(uchar dat)
{
LCD_Read_busy();
LCD1602_RS = 1;
LCD1602_RW = 0;
LCD1602_DB = dat;
LCD1602_EN = 1;
LCD1602_EN = 0;
}
void Init_LCD1602()
{
LCD_Write_cmd(0x38);
LCD_Write_cmd(0x0f);
LCD_Write_cmd(0x06);
LCD_Write_cmd(0x01);
}
void LCD1602_Set_Cursor(uchar x,uchar y)
{
if(y)
x |= 0x40;
x |= 0x80;
LCD_Write_cmd(x);
}
void LCD_Dis_STR(uchar x,uchar y,uchar *str)
{ //这是keil显示警告的位置 在编译器上这是第66行
LCD1602_Set_Cursor(x,y);
while(*str != '\0')
{
LCD_Write_dat(*str++);
}
}
/*这是主函数模块main.c*/
#define _MAIN_C
#include "config.h"
#include "lcd1602.h"
void main()
{
Init_LCD1602();
LCD_Dis_STR(6,0,"Hello");
while(1);
}
/*这是关于函数声明还有定义声明的config.h*/
#ifndef _CONFIG_H
#define _CONFIG_H
#include <reg52.h>
#include <intrins.h>
#define MAIN_Fosc 11059200UL //宏定义主时钟HZ
//已有数据类型重命名
typedef signed int int16; //16位有符号整型
typedef signed char int8; //8位有符号型
typedef unsigned char uchar8; //8位无符号型
typedef unsigned char uchar; //8位无符号型
typedef unsigned int uint16; //16位无符号型
typedef unsigned int uint; //16位无符号型
typedef unsigned long uint32; //32位无符号型
//硬件接口定义
/*LCD1602液晶引脚*/
#define LCD1602_DB P0
sbit LCD1602_RS = P3^5;
sbit LCD1602_RW = P3^6;
sbit LCD1602_EN = P3^4;
#endif
/*这是lcd1602的一些函数声明*/
#ifndef _LCD1602_H
#define _LCD1602_H
void Init_LCD1602(); //初始化lCD1602
void LCD_Dis_STR(uint x,uint y,uint *str); //lcd1602写字符串
void LCD1602_Set_Cursor(uchar x,uchar y); //LCD1602设置光标显示位置
#endif