打印
[活动]

【G32A1465开发板】黑白LCD显示_GPIO

[复制链接]
65|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhjb1|  楼主 | 2024-12-16 15:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhjb1 于 2024-12-16 16:09 编辑

三、GPIO_LCD
下午抽空将黑白串口LCD做了测试。
首先参考开发板说明在正面摆放左边外侧从下向上有一列GPIO逻辑排列与常规串口LCD的引脚连接:GND-VDD-E13-E14-E15-E16,再参照PINS_LED中对GPIO初始化的定义将LCD初始化定义如下:

//Define LCD pins
#define LCD_GPIO   PME
#define LCD1_PIN   (13U)//连接SDAT
#define LCD2_PIN   (14U)//连接SCLK
#define LCD3_PIN   (15U)//连接D/C 数据/命令
#define LCD4_PIN   (16U)//连接Reset

//Enable Clock to Port E
CLOCK_SYS_ConfigModuleClock(PME_CLK, NULL);
//Set pin mode
PINS_SetMuxModeSel(LED_RED_PORT_BASE, LED_RED_PIN, PM_MUX_AS_GPIO);
PINS_SetMuxModeSel(LCD_GPIO, LCD1_PIN, PM_MUX_AS_GPIO);
PINS_SetMuxModeSel(LCD_GPIO, LCD2_PIN, PM_MUX_AS_GPIO);
PINS_SetMuxModeSel(LCD_GPIO, LCD3_PIN, PM_MUX_AS_GPIO);
PINS_SetMuxModeSel(LCD_GPIO, LCD4_PIN, PM_MUX_AS_GPIO);
//Set pin interrupt
PINS_SetPinIntSel(LCD_GPIO, LCD1_PIN, PM_DMA_INT_DISABLED);
PINS_SetPinIntSel(LCD_GPIO, LCD2_PIN, PM_DMA_INT_DISABLED);
PINS_SetPinIntSel(LCD_GPIO, LCD3_PIN, PM_DMA_INT_DISABLED);
PINS_SetPinIntSel(LCD_GPIO, LCD4_PIN, PM_DMA_INT_DISABLED);
//GPIO Initialization
PINS_SetPins(GPIOE, 1U << LCD1_PIN);
PINS_SetPins(GPIOE, 1U << LCD2_PIN);
PINS_SetPins(GPIOE, 1U << LCD3_PIN);
PINS_SetPins(GPIOE, 1U << LCD4_PIN);
//Set pin as output
PINS_SetPinDir(GPIOE, LCD1_PIN, 1U);
PINS_SetPinDir(GPIOE, LCD2_PIN, 1U);
PINS_SetPinDir(GPIOE, LCD3_PIN, 1U);
PINS_SetPinDir(GPIOE, LCD4_PIN, 1U);
感觉有点浪费,常规是不定义无功能——高阻悬浮态,不过都定义以下不容易出错也好。之后就是将12864.h include到主函数上,以前有定义显示的基本参数,这次加了点与开发板有关的,而后定义了程序计数器加在G32A1xxx_int.hvoid SysTick_Handler(void)中:js++;运行后没有结果才想起来没有定义Systick的中断向量,只好在主函数的循环语句中加上:
if(js>999999)js=0;else js++;
遍历工程,搜到一个毫秒定时器在osif.h中,将这和连接到主函数和12864.h中作为定时器用,省的自己编一个定时器。
另外参照主函数中LED点亮方式,设置蓝色LED频闪:
LED_Off(2);
dispMes();
OSIF_TimeDelay(500);
LED_On(2);
OSIF_TimeDelay(50);
这样原函数中的按键还有效,lcd也点亮了,频闪ledOK了,见照片。
左向右:按键LED_RED亮、开机时三色亮——白色、按键将LED_RED灭了蓝灯闪亮、蓝灯闪灭。

3_01.jpg (7.36 MB )

3_01.jpg

使用特权

评论回复
沙发
zhjb1|  楼主 | 2024-12-16 15:58 | 只看该作者
本帖最后由 zhjb1 于 2024-12-16 16:23 编辑

实际偷懒了,应该再定义一个GPIOE的LCD_BASE_GPIO,这样就与源代码更趋一致了,以后改吧。顺便说一下,有了LCD的加持,接下来进行功能型模块测试,ADC、中断、响应、DAC、串口、I2C等还有DMA。
目前感觉芯片动起来速度挺快,有时间做一个I/O口反转速度测试。已经测过407 系列的大约最快到30MHz-,7xx系列的可以超过50MHz+,上述在PWM中完成的,当然极限I/O口翻转电平跌了一半,已经是三角波了——我的示波器是双通道200MHz,触发极限速度1GHz。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:永远好心情 [img]https://bbs.21ic.com/static/image/s

55

主题

256

帖子

1

粉丝