在线时间973 小时
UID1694538
注册时间2018-5-21
NXP金币2223
TA的每日心情 | 奋斗 6 小时前 |
---|
签到天数: 2002 天 [LV.Master]伴坛终老
金牌会员
- 积分
- 11928
- 最后登录
- 2024-4-26
|
最近工作比较忙,没有抽出更多的时间研究IRD-LPC1768-DEV开发板,工作期间可以翻阅一下各位网友更新的帖子,在工业级开发板上移植加载RTOS系统也有网友做出来了,实在羡慕敬佩。由于此次开发板的发放分有两个版本,管管也将光盘部分的资料以发帖公布的形式奉献出来了,在此也非常感谢。
根据NXP这款开发板的相关资源以及网友在论坛上发表的帖子,让我受益匪浅。从安装KEIL到编译工程,从UART到CAN总线,要学的东西还是蛮多的,包括ULink-ME驱动的安装,编译加载时提示找不到启动地址。
今天就LCD的显示这一块做了下调试,部分展示如下:
int32_t LCD_Init(void)
{
LCD_Pin_Initialize();
LCD_Write_CMD(INSTR_FUNC(IFUNC_8BIT|IFUNC_TWO_LINE|IFUNC_DISPLAY_ON));
LCD_Write_CMD(INSTR_DISPLAY(IDISPLAY_ON|IDISPLAY_CURSOR_OFF|IDISPLAY_BLINK_OFF));
LCD_Write_CMD(INSTR_CLEAR);
LCD_Write_CMD(INSTR_ENTRY_MODE(IENTRY_INCREMENT|IENTRY_SHIFT_OFF));
return 0;
}
int32_t LCD_Write_Data(int8_t data)
{
GPIO_PinWrite (LCD_Pin[8].uPort, LCD_Pin[8].uPin, 1);
GPIO_PinWrite (LCD_Pin[9].uPort, LCD_Pin[9].uPin, 0);
Delayms(1);
GPIO_PinWrite (LCD_Pin[10].uPort, LCD_Pin[10].uPin, 1);
GPIO_PortWrite(LCD_Pin[0].uPort,0x000000FF,data);
LPC_GPIO2->FIOMASK=0;
GPIO_PinWrite (LCD_Pin[10].uPort, LCD_Pin[10].uPin, 0);
GPIO_PinWrite (LCD_Pin[9].uPort, LCD_Pin[9].uPin, 1);
Delayms(2);
return 0;
}
int32_t LCD_WR_Str(char * str)
{
int i;
for(i=0;i<(strlen(str));i++){
LCD_Write_Data(str);
}
return 0;
}
int main (void)
{
char buff[40];
char dats[64];
char time[64];
static char cur_month = 0;
static char cur_date = 0;
static char cur_hours = 0;
static char cur_minutes = 0;
static char cur_second = 0;
SystemCoreClockUpdate ();
SysTick_Config(SystemCoreClock/10);
LED_Initialize();
LCD_Init();
LCD_Set_RowCol(2,0);
LCD_WR_Str("This is LCD Test");
while (1)
{
if (LEDOn)
{
LEDOn = 0;
GPIO_PinWrite (LED_PORT, LED_PIN, 1);
cur_times++;
cur_second++;
if(cur_second > 59)
{
cur_second = 0;
cur_minutes++;
}
if(cur_minutes > 59)
{
cur_minutes = 0;
cur_hours++;
}
if(cur_hours > 24)
{
cur_hours = 0;
cur_date++;
}
if(cur_date > 30) //暂且以30天作为一个月的天数
{
cur_date = 0;
}
sprintf(buff,"cur_times:%d",cur_times);
LCD_Set_RowCol(3,1);
LCD_WR_Str(buff);
sprintf(dats,"Y:2019 M:%2d D:%2d",cur_month,cur_date); //暂且以2019为固定年份
LCD_Set_RowCol(2,2);
LCD_WR_Str(dats);
sprintf(time,"H:%2d M:%2d S:%2d",cur_hours,cur_minutes,cur_second);
LCD_Set_RowCol(2,3);
LCD_WR_Str(time);
}
if (LEDOff)
{
LEDOff = 0;
GPIO_PinWrite (LED_PORT, LED_PIN, 0);
}
}
}
夜深了,明天上要上早班,先介绍到这里,感谢网友的答疑解惑。最后附上结果图,后续再对I2C通讯的键盘,UART,CAN总线进行学习,希望各位网友多多帮忙,奉献出宝贵的经验。
|
|