200|2

431

帖子

3

TA的资源

纯净的硅(高级)

楼主
 

【FRDM-MCXN947】硬件SPI方式驱动LCD12864 [复制链接]

测试使用硬件方式驱动LCD12864。

在上篇帖子https://bbs.eeworld.com.cn/thread-1301831-1-1.html的基础上,将SPI方式有模拟方式改为硬件SPI方式

 

一、配置接口

 

显示屏只有写,没有读接口,用到了SPI的MOSI和SCK引脚。下图是配置为硬件SPI

 

配置FC6_FLEXCOMM时钟

SPI配置为12MHz

 

二、程序部分

 

spi初始化。

void lcd_init_spi(void)
{
	uint32_t srcClock_Hz;
	
	lpspi_master_config_t masterConfig;
	lpspi_transfer_t masterXfer;
	
	init_lcd_jlx12864g_pins();
	
	/* attach FRO 12M to FLEXCOMM6 */
//	CLOCK_SetClkDiv(kCLOCK_DivFlexcom6Clk, 1u);
//	CLOCK_AttachClk(kFRO12M_to_FLEXCOMM6);
	
//	/*Master config*/
	LPSPI_MasterGetDefaultConfig(&masterConfig);
	masterConfig.baudRate = TRANSFER_BAUDRATE;
	masterConfig.whichPcs = EXAMPLE_LPSPI_MASTER_PCS_FOR_INIT;
	masterConfig.pcsToSckDelayInNanoSec        = 1000000000U / (masterConfig.baudRate * 2U);
	masterConfig.lastSckToPcsDelayInNanoSec    = 1000000000U / (masterConfig.baudRate * 2U);
	masterConfig.betweenTransferDelayInNanoSec = 1000000000U / (masterConfig.baudRate * 2U);
	
	srcClock_Hz = LPSPI_MASTER_CLK_FREQ;
	LPSPI_MasterInit(EXAMPLE_LPSPI_MASTER_BASEADDR, &masterConfig, srcClock_Hz);
	
}

void fc6_spi_writebyte(uint8_t byte)
{
	uint8_t srcBuff[2];
	uint8_t destBuff[2];
	srcBuff[0]=byte;
	lpspi_transfer_t masterXfer;
	
	/*Start master transfer*/
	masterXfer.txData   = srcBuff; 
	masterXfer.rxData   = destBuff;
	masterXfer.dataSize = 1;
	masterXfer.configFlags = EXAMPLE_LPSPI_MASTER_PCS_FOR_TRANSFER | kLPSPI_MasterPcsContinuous | kLPSPI_MasterByteSwap;
	LPSPI_MasterTransferBlocking(EXAMPLE_LPSPI_MASTER_BASEADDR, &masterXfer);
}

void lcd_jlx12864g_write_cmd(uint8_t cmd)
{
	uint8_t i=0;
	lcd_jlx12864g_cs_l();
	lcd_jlx12864g_rs_l();
	
	fc6_spi_writebyte(cmd);
}

void lcd_jlx12864g_write_dat(uint8_t dat)
{
	uint8_t i=0;

	lcd_jlx12864g_cs_l();
	lcd_jlx12864g_rs_h();
	
	fc6_spi_writebyte(dat);
}

 

main.c

#include "main.h"

int main(void)
{
	uint8_t i;

  CLOCK_EnableClock(kCLOCK_Gpio0);
	BOARD_InitDEBUG_UARTPins();
	BOARD_PowerMode_OD();
	BOARD_InitBootClocks();
	BOARD_InitDebugConsole();

	init_utick();  
	SysTick_Init();
	//init_p3t1755();
	init_led();
	init_key();
	//p3t1755_test();
	init_lcd_jlx12864g();

	lcd_showString(0,0, (uint8_t*)"MCXN947_BOARD_TEST",6,12);
	lcd_showString(0,13,(uint8_t*)"JLX12864G-SPI",6,12);
	lcd_showString(0,26,(uint8_t*)"2024/12/14",6,12);
	lcd_refreshGram();
	while (1)
	{
		SysTick_Delay_ms(500);
		led_red_tog();
		//lcd_clear();
		lcd_showString(0,39,(uint8_t*)"MCXN947_BOARD [OK]",6,12);
		lcd_refreshGram();
		SysTick_Delay_ms(500);
		//lcd_clear();
		lcd_showString(0,39,(uint8_t*)"TTTTTTTTTTTTT [OK]",6,12);
		lcd_refreshGram();
	}
}

 

三、运行结果

 

jlx128642

 

 

 

 

 

此帖出自NXP MCU论坛

最新回复

这是定制款的屏幕还还是通用接口的屏幕?   详情 回复 发表于 4 天前
点赞 关注
 

回复
举报

6251

帖子

9

TA的资源

版主

沙发
 

这是定制款的屏幕还还是通用接口的屏幕?

此帖出自NXP MCU论坛

点评

买的LCD屏幕设计的底板和转接板  详情 回复 发表于 4 天前
 
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 

回复

431

帖子

3

TA的资源

纯净的硅(高级)

板凳
 
秦天qintian0303 发表于 2024-12-15 00:01 这是定制款的屏幕还还是通用接口的屏幕?

买的LCD屏幕设计的底板和转接板

此帖出自NXP MCU论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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