382|9

820

帖子

3

资源

纯净的硅(初级)

【CH579M-R1】+驱动LCD5110显示屏

    经过一天时间的调试,LCD5110显示屏终于驱动成功,程序是从STM32移植过来的,调整时序时还借助了逻辑分析仪。调试过程中还犯了低级错误,忘记对LCD5110初始化了,时序已经调整的非常理想,但LDC就是无显示,百思不得其解,最后才发现问题。下图为调试过程:

LCD5110_1.jpg

    这是用逻辑分析仪调整时序的截图:

LCD5110_0.jpg

    下面是main.c代码:

int main()
{
    UINT8 len,i,dir;
    
    
/* 配置串口1:先配置IO口模式,再配置串口 */   
    GPIOA_SetBits(GPIO_Pin_9);
    GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);			  // RXD-配置上拉输入
    GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA);		// TXD-配置推挽输出,注意先让IO口输出高电平
    UART1_DefInit();
    
#if 1       // 测试串口发送字符串
    UART1_SendString( TxBuff, sizeof(TxBuff) );

#endif
/* 配置LED和PWM */
    GPIOA_ModeCfg(GPIO_Pin_6, GPIO_ModeOut_PP_5mA); // PA6 - PWM4(LED4)
    GPIOB_ModeCfg(GPIO_Pin_6, GPIO_ModeOut_PP_5mA); // PB6 - LED3
    PWMX_CLKCfg( 4 );
    PWMX_CycleCfg( PWMX_Cycle_64 );
	

    GPIOB_ModeCfg(GPIO_Pin_4, GPIO_ModeOut_PP_5mA); // PB4 - LED_G
    GPIOB_ModeCfg(GPIO_Pin_7, GPIO_ModeOut_PP_5mA); // PB7 - LED_Y
    GPIOB_InverseBits(4);

    LCD_init();           //LCD5110初始化
	display_main();       //显示主界面
	
    // 中断方式:接收数据后发送出去
    UART1_ByteTrigCfg( UART_7BYTE_TRIG );
    trigB = 7;
    UART1_INTCfg( ENABLE, RB_IER_RECV_RDY|RB_IER_LINE_STAT );
    NVIC_EnableIRQ( UART1_IRQn );

#if 1       // 查询方式:接收数据后发送出去
    while(1)
    {
/*        //串口测试
        len = UART1_RecvString(RxBuff);
        if( len )
        {
            UART1_SendString( RxBuff, len );            
        }
*/
		//PWM测试
        if(dir){
            i--;
            if(i == 0){
                dir = 0;
			    GPIOB_InverseBits(GPIO_Pin_4);
			}
        }
        else{
            i++;
            if(i == 64){
                dir = 1;
				GPIOB_InverseBits(GPIO_Pin_7);
			}
		}
        PWMX_ACTOUT( CH_PWM4, i, Low_Level, ENABLE);

//        PWMX_ACTOUT( CH_PWM7, 64-i, Low_Level, ENABLE);
        mDelaymS(10);
        //LED3闪烁测试
        time++;
        if(time > 50){
            time = 0;
            GPIOB_InverseBits(GPIO_Pin_6);

        }
    }
    
#endif    

#if 0      // 中断方式:接收数据后发送出去
    UART1_ByteTrigCfg( UART_7BYTE_TRIG );
    trigB = 7;
    UART1_INTCfg( ENABLE, RB_IER_RECV_RDY|RB_IER_LINE_STAT );
    NVIC_EnableIRQ( UART1_IRQn );
#endif    

//    while(1);    
}

    这是LCD显示状况:

LCD5110_2.jpg


回复

1万

帖子

133

资源

管理员

个人签名

玩板看这里:

http://bbs.eeworld.com.cn/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!


回复

326

帖子

0

资源

一粒金砂(中级)

楼主时间很充足啊,看您申请不少板子评测

点评

退休在家,除了搞卫生和外出锻炼身体,基本上就折腾板子。  详情 回复 发表于 2020-9-14 12:55
的确,好像还有南芯SC8905那。  详情 回复 发表于 2020-9-14 11:44

回复

447

帖子

0

资源

一粒金砂(高级)

宋元浩 发表于 2020-9-14 09:42 楼主时间很充足啊,看您申请不少板子评测

的确,好像还有南芯SC8905那。

点评

是的,这次比较幸运,同时获得了CH579M和SC8905两块板子的评测机会。  详情 回复 发表于 2020-9-14 12:52

回复

447

帖子

0

资源

一粒金砂(高级)

屏下面显示的时间是调用的RTC吗?

点评

准备使用DS1307日历模块,这个时间更方便,开机时不用设置。  详情 回复 发表于 2020-9-14 12:54

回复

820

帖子

3

资源

纯净的硅(初级)

jinglixixi 发表于 2020-9-14 11:44 的确,好像还有南芯SC8905那。

是的,这次比较幸运,同时获得了CH579M和SC8905两块板子的评测机会。


回复

820

帖子

3

资源

纯净的硅(初级)

jinglixixi 发表于 2020-9-14 11:47 屏下面显示的时间是调用的RTC吗?

准备使用DS1307日历模块,这个时间更方便,开机时不用设置。

点评

原来如此,知道了!  详情 回复 发表于 2020-9-14 18:04

回复

820

帖子

3

资源

纯净的硅(初级)

宋元浩 发表于 2020-9-14 09:42 楼主时间很充足啊,看您申请不少板子评测

退休在家,除了搞卫生和外出锻炼身体,基本上就折腾板子。

点评

啊,幸福!!!  详情 回复 发表于 2020-9-14 18:03

回复

447

帖子

0

资源

一粒金砂(高级)

hujj 发表于 2020-9-14 12:55 退休在家,除了搞卫生和外出锻炼身体,基本上就折腾板子。

啊,幸福!!!


回复

447

帖子

0

资源

一粒金砂(高级)

hujj 发表于 2020-9-14 12:54 准备使用DS1307日历模块,这个时间更方便,开机时不用设置。

原来如此,知道了!


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

关闭
站长推荐上一条 1/5 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表