OpenEdv-开源电子网

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

编译老是出现这样的问题,我不知道是不是分文件出错了

[复制链接]

24

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-4-24
在线时间
52 小时
发表于 2015-6-26 14:31:14 | 显示全部楼层 |阅读模式
5金钱
编译老是出现这样的问题,我不知道是不是分文件出错了

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

24

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-4-24
在线时间
52 小时
 楼主| 发表于 2015-6-26 14:33:44 | 显示全部楼层
[mw_shl_code=c,true]这是主函数:[/mw_shl_code] [mw_shl_code=c,true]#include <msp430x16x.h> #include"Config.h" #include"12864.h" #include"keyboard.h" //*********************************************************************** // 系统时钟初始化,外部8M晶振 //*********************************************************************** void Clock_Init() { uchar i; BCSCTL1&=~XT2OFF; //打开XT2振荡器 BCSCTL2|=SELM1+SELS; //MCLK为8MHZ,SMCLK为8MHZ do{ IFG1&=~OFIFG; //清楚振荡器错误标志 for(i=0;i<100;i++) _NOP(); } while((IFG1&OFIFG)!=0); //如果标志位1,则继续循环等待 IFG1&=~OFIFG; } void LCD_DisplayKey(uchar keynum) { LCD_write_char(0x06,1,0x30+keynum); } void main(void) { WDT_Init(); Clock_Init(); //时钟初始化 Port_init(); keyPort_init(); //端口初始化,用于控制IO口输入或输出 LCD_init(); //液晶参数初始化设置 LCD_clear(); //清屏 LCD_Desk(); while(1) { keyscan(); switch(key) { case 0CD_DisplayKey(1);break; case 1CD_DisplayKey(2);break; case 2CD_DisplayKey(3);break; case 3CD_DisplayKey(4);break; case 4CD_DisplayKey(5);break; case 5CD_DisplayKey(6);break; case 6CD_DisplayKey(7);break; case 7CD_DisplayKey(8);break; case 8CD_DisplayKey(9);break; case 9CD_DisplayKey(10);break; } } } [/mw_shl_code] [mw_shl_code=c,true]这是按键扫描程序:[/mw_shl_code] [mw_shl_code=c,true] #include "keyboard.h" #include"Config.h" void keyPort_init() { P1SEL = 0x00; //P1普通IO功能 P1DIR = 0x0f; //P0~p3设置为输出模式,p4~p7为输入 P3SEL = 0x00; //P3口普通IO功能 P3DIR = 0xFF; //P3口输出模式,驱动led } //4*4矩阵键盘扫描程序,检测第一列S6~S18 uchar keyscan(void) { uchar temp; /*************************扫描第1行***********************/ P1OUT=0x0e; temp=P1IN&0xf0;// if(temp!=0xf0) // 说明高四位有低电平输入 { delay_ms(10); if(temp!=0xf0) { temp=P1IN&0xf0; switch(temp) { case 0xe0: key=0; break; case 0xd0: key=1; break; case 0xb0: key=2; break; case 0x70: key=3; break; } } } /*************************扫描第2行***********************/ P1OUT=0x0d; temp=P1IN&0xf0; if(temp!=0xf0) // 说明高四位有低电平输入 { delay_ms(10); if(temp!=0xf0) { temp=P1IN&0xf0; switch(temp) { case 0xe0: key=4; break; case 0xd0: key=5; break; case 0xb0: key=6; break; case 0x70: key=7; break; } } } P1OUT=0x0b; temp=P1IN&0xf0; if(temp!=0xf0) // 说明高四位有低电平输入 { delay_ms(10); if(temp!=0xf0) { temp=P1IN&0xf0; switch(temp) { case 0xe0: key=8; break; case 0xd0: key=9; break; case 0xb0: key=10; break; case 0x70: key=11; break; } } } P1OUT=0x07; temp=P1IN&0xf0; if(temp!=0xf0) // 说明高四位有低电平输入 { delay_ms(10); if(temp!=0xf0) { temp=P1IN&0xf0; switch(temp) { case 0xe0: key=12; break; case 0xd0: key=13; break; case 0xb0: key=14; break; case 0x70: key=15; break; } } } return key; } [/mw_shl_code] [mw_shl_code=c,true]这是液晶显示: #include"12864.h" #include"Config.h" //************************************************************************* // 初始化IO口子程序 //************************************************************************* void Port_init() { P4SEL = 0x00; P4DIR = 0xFF; P5SEL = 0x00; P5DIR|= BIT0 + BIT1 + BIT5 + BIT6 + BIT7; PSB_SET; //液晶并口方式 RST_SET; } //*********************************************************************** // 显示屏命令写入函数 //*********************************************************************** void LCD_write_com(unsigned char com) { RS_CLR; RW_CLR; EN_SET; DataPort = com; delay_ms(5); EN_CLR; } //*********************************************************************** // 显示屏数据写入函数 //*********************************************************************** void LCD_write_data(unsigned char data) { RS_SET; RW_CLR; EN_SET; DataPort = data; delay_ms(5); EN_CLR; } //*********************************************************************** // 显示屏清空显示 //*********************************************************************** void LCD_clear(void) { LCD_write_com(0x01); delay_ms(5); } //*********************************************************************** //函数名称:DisplayCgrom(uchar hz)显示CGROM里的汉字 //*********************************************************************** void DisplayCgrom(uchar addr,uchar *hz) { LCD_write_com(addr); delay_ms(5); while(*hz != '\0') { LCD_write_data(*hz); hz++; delay_ms(5); } } //*********************************************************************** // 显示屏单字符写入函数 //*********************************************************************** void LCD_write_char(unsigned char x,unsigned char y,unsigned char data) { if (y == 0) { LCD_write_com(0x80 + x); //第一行显示 } if(y == 1) { LCD_write_com(0x90 + x); //第二行显示 } if (y == 2) { LCD_write_com(0x88 + x); //第三行显示 } if(y == 3) { LCD_write_com(0x98 + x); //第四行显示 } delay_ms(1); LCD_write_data(data); delay_ms(1); } //**************************************************************** //函数名称:Display()显示测试结果 //**************************************************************** void Display(void) { DisplayCgrom(0x80,"欣世纪电子欢迎你"); DisplayCgrom(0x88,"旺:jingyehanxing"); DisplayCgrom(0x90,"www.avrgcc.com "); DisplayCgrom(0x98,"电话057487470625"); } //*********************************************************************** // 显示屏初始化函数 //*********************************************************************** void LCD_init(void) { LCD_write_com(FUN_MODE); //显示模式设置 delay_ms(5); LCD_write_com(FUN_MODE); //显示模式设置 delay_ms(5); LCD_write_com(CURSE_DIR); //显示模式设置 delay_ms(5); LCD_write_com(DISPLAY_ON); //显示开 delay_ms(5); LCD_write_com(CLEAR_SCREEN); //清屏 delay_ms(5); } //*********************************************************************** // 液晶显示界面初始化 //*********************************************************************** void LCD_Desk(void) { LCD_clear(); DisplayCgrom(0x80,"苏职大欢迎你"); DisplayCgrom(0x90,"当前键值是:"); delay_ms(250); } [/mw_shl_code]

回复

使用道具 举报

230

主题

1952

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2015-6-27 11:43:26 | 显示全部楼层
目测可能是头文件重复引用问题。
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-6-9 12:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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