包皮开裂是什么原因| 什么的英语单词| 福禄是什么意思| 水猴子是什么动物| 网贷是什么| 咖喱是什么材料做的| 拿什么让你幸福| 怀女儿有什么症状| 耽美什么意思| 立加羽读什么| 什么叫溶血| 圆是什么生肖| 爻卦是什么意思| 做完痔疮手术吃什么好| 开水烫伤用什么药膏好得快| 跳蛛吃什么| 吃什么会流产| 脑白质脱髓鞘吃什么药| 维c什么时候吃效果最好| 玉米和什么不能一起吃| 南瓜长什么样子的图片| 肺上有结节是什么意思| 蛇肉吃了有什么好处| 眼压高用什么药| 59岁属什么生肖| 双肾小结石是什么意思| 尿粒细胞酯酶阳性什么意思| ba是什么元素| 入驻是什么意思| 片酬是什么意思| 宫颈管是什么| 人为什么会失眠| 喉咙干痒吃什么药| 糖化高是什么意思| 乳糖酶是什么东西| 孕妇感染弓形虫有什么症状| 呼吸困难气短是什么原因| 缺钾最忌讳吃什么| 科目一考试需要带什么| 跳蛋什么意思| 江小白加雪碧什么意思| 宁字属于五行属什么| 什么细节能感动摩羯男| 墨菲定律是什么意思| 英国用什么货币| 阴虚是什么| 治疗阳痿早泄用什么药| 项羽是什么生肖| 头孢不能和什么食物一起吃| speedo是什么牌子| 什么生日的人有佛缘| 梦见把狗打死了是什么意思| 西游记有什么故事| 营养不良吃什么| 经常放屁是什么问题| 圣诞节适合送什么礼物| 全脂牛奶和脱脂牛奶有什么区别| 胸疼挂什么科室| 中耳炎不能吃什么食物| 嘴巴里长血泡是什么原因| 茯茶是什么茶| 促排卵针什么时候打| 唇色深是什么原因| 气管炎吃什么药最有效| 邮政编码是什么意思| 过敏性鼻炎吃什么食物好| 吃三七粉不能吃什么| 腿脚发麻是什么原因| 桃子又什么又什么填空| 月经来了腰疼是什么原因| 利字五行属什么| 农历六月初四是什么日子| 破卵针是什么| 7月17日什么星座| 猴子偷桃是什么生肖| 4月2号什么星座| 一什么雪花| 飞机为什么能飞上天| 看男科挂什么门诊| 包皮炎看什么科| 形影不离是什么意思| 吃什么补叶酸最快| 鳄鱼的天敌是什么动物| 恬静是什么意思| 汗水多是什么原因| 疣体是什么病| 撇清关系是什么意思| 乙肝表面抗体弱阳性什么意思| 包场是什么意思| 素鸡是用什么做的| 4月6号是什么星座| 什么人容易高原反应| 跖疣是什么东西| 舌苔厚黄吃什么药最好| 5月6日是什么星座| 抑郁症是什么意思| 小孩子手脚脱皮是什么原因| 什么是熊猫血| 甲状腺吃什么药| 皮肤癣是什么原因造成的| 男人做什么运动能提高性功能| 保教费是什么意思| 熬夜喝什么好| 桃子有什么功效| 端午节喝什么酒| 桃花眼的女人什么命| 患难见真情是什么意思| 锲而不舍下一句是什么| 04属什么生肖| 什么是道德绑架| 灸石门为什么会不孕| 癫痫病是什么原因引起的| 门牙旁边的牙齿叫什么| 昆明是什么城| 泉中水命是什么意思| 袁绍和袁术是什么关系| 疱疹挂号挂什么科室| 02年的马是什么命| 什么都想吃| 眼压高是什么原因| 女人喝蛇汤有什么好处| 不以为然的意思是什么| 脚后跟干裂是什么原因| ins是什么社交软件| poct是什么意思| 有对什么| 1973属什么生肖| 吃什么对肝脏有好处能养肝| 有什么好看的国漫| 梦见钱是什么预兆| 一月八号是什么星座| 胃不好看什么科| 爱马仕配货是什么意思| 6月16日是什么星座| 宫颈纳氏囊肿是什么| 猴子偷桃是什么意思| 湿热吃什么药好| 冬阴功是什么意思| 红虾是什么虾| 什么的旅行| 四大是什么| 口腔溃疡长什么样| 姑姐是什么意思| catl是什么意思| 菱形脸适合什么刘海| 水果什么时间段吃最好| 手机账号是什么| 吃什么会变丑脑筋急转弯| 怀孕不能吃什么东西| 耳鸣吃什么药比较好| 受精卵着床有什么反应| 解酒喝什么饮料| 三岁看大七岁看老什么意思| 浪人是什么意思| 什么是工作日| 电子厂是做什么的| 0z是什么单位| 吃什么水果能壮阳| 覆盆子有什么功效| psp是什么| 手掌纹路多且杂乱是为什么| 为什么会有扁桃体结石| 暴跳如雷是什么意思| 1月3日是什么星座| 房子风水主要看什么| 梦到牛是什么预兆| 心脏上有个小洞是什么病| 乐可是什么| 铁皮石斛有什么功效| 胳肢窝疼痛是什么原因| 尿有臭味是什么原因| 吃猪皮有什么好处和坏处| 颈椎病睡什么枕头最好| 伤口用什么消毒| 11月16日是什么星座| 沪深300是什么意思| 脚上为什么会长鸡眼| 雅号是什么意思| 月经推迟是什么原因| 月经提前半个月来是什么原因| 吃什么睡眠好的最快最有效| 容易头晕是什么原因| 1938年属什么生肖| 自闭症是什么| 银杏叶片治什么病| 牡丹花是什么颜色的| 硫酸铜是什么颜色| 蜜蜡是什么东西| 上午九点多是什么时辰| 血脂高吃什么中药| 可遇不可求是什么意思| 食物不耐受是什么意思| 百合有什么功效| 什么长而去| 腹泻吃什么药最有效| 脑梗什么原因导致的| 头出汗是什么原因| 怀孕为什么要建档| 经期吃榴莲有什么好处和坏处| 可定是什么药| 脸跳动是什么原因| 做梦梦见拉屎是什么意思| 咖喱是什么| sama是什么药| 黄五行属什么| 眼睛长黄斑是什么原因| 穿小鞋什么意思| 阴道流黄水是什么病| 老人脚肿吃什么药消肿| 卤肉是什么肉| 五行缺金是什么意思| 什么是玄关在哪个位置| 什么逼人| 老丈人是什么意思| 妈妈的哥哥的老婆叫什么| 小肠疝气挂什么科| 亚甲炎是什么原因引起的| 五花肉炒什么好吃| 犬瘟吃什么药管用| 辰字属于五行属什么| 早泄是什么原因引起的| 为什么星星会眨眼| 螃蟹吐泡泡是什么原因| 胃息肉吃什么药治疗| 小米不能和什么一起吃| 糖尿病人吃什么水果好| 时机是什么意思| 什么东西补铁| 日龙包什么意思| 约炮是什么意思| 肾造瘘是什么意思| 13层楼房有什么说法吗| 阑尾炎打什么消炎针好| 八爪鱼是什么| 低级别上皮内瘤变是什么意思| 口加大是什么字| 去医院检查怀孕挂什么科| 送手镯的寓意是什么| 中国的国树是什么树| 指甲横纹是什么原因| 完璧归赵发生在什么时期| 专科警校出来干什么| 黄疸是什么原因引起的| 土茯苓和什么煲汤最好| 肌肉痛吃什么药| 猫喜欢什么样的人| 碳酸盐质玉是什么玉| 1960年属鼠的是什么命| 什么样的吸尘器比较好| 最新病毒感染什么症状| 易孕体质是什么意思| 验孕棒什么时候测比较准| 龙王庙是指什么生肖| 茴香是什么| 九条鱼代表什么意思| 侄子是什么关系| gigi 是什么意思| 诈骗是什么意思| 甲亢能吃什么水果| mf是什么意思| 石头记为什么叫红楼梦| 艾草有什么作用| 脚痒脱皮是什么原因| 六月中旬是什么时候| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 活动中心 ? 板卡试用 ? NUCLEO-F412驱动TFT屏幕

共10条 1/1 1 跳转至

NUCLEO-F412驱动TFT屏幕

工程师
2025-08-04 18:23:59   被打赏 70 分(兑奖)     打赏
百度   新加坡著名外交家兼学者比拉哈里·考斯坎最近解释说,未来全球合作的新兴架构很可能由多个重叠的框架构成。

感谢电子产品世界和ST提供的本次NUCLEO-F412ZG的测评机会。

NUCLEO-F412ZG板卡具有3个用户LED和2个用户按钮和复位按钮。板连接器:SWDST Zio扩展连接器,包括ARDUINO? Uno V3ST morpho扩展连接器

灵活的供电选项:ST-LINK、USB VBUS或外部电源;具有USB重新枚举功能的板上ST-LINK调试器/编程器:大容量存储器、虚拟COM端口和调试端口

提供了全面的免费软件库和例程,可从STM32Cube MCU软件包获得支持多种集成开发环境(IDE),包括IAR?、Keil?、和STM32CubeIDE

开发板虽然支持符合IEEE-802.3-2002规范的以太网,但是可以看到板卡上的以太网接口和相关的变压器并没有焊接,所以本次测评暂时不进行以太网的测试。


一、使用STM32 CubeMX生成一个KEIL MDK例程

在Example Selector栏选择Board -> NUCLEO-F412ZG.

1.png

然后点击“Start Project in External IDE”:

3.png

自动生成的项目结构如下,并且MDK会自动打开该项目。

D:.

├─Drivers

│  ├─BSP

│  │  └─STM32F4xx_Nucleo_144

│  │      └─_htmresc

│  ├─CMSIS

│  │  ├─Device

│  │  │  └─ST

│  │  │      └─STM32F4xx

│  │  │          └─Include

│  │  └─Include

│  └─STM32F4xx_HAL_Driver

│      ├─Inc

│      │  └─Legacy

│      └─Src

├─EWARM

├─Inc

├─MDK-ARM

│  ├─DebugConfig

│  ├─RTE

│  │  └─_STM32412ZG_Nucleo

│  └─STM32412ZG_Nucleo

├─Src

└─STM32CubeIDE

    └─Example

        ├─Startup

        └─User


其中核心的主函数代码如下:

int main(void)
{
  /* This sample code shows how to use GPIO HAL API to toggle LED1 and LED3 IOs
    in an infinite loop. */
  /* STM32F4xx HAL library initialization:
       - Configure the Flash prefetch
       - Systick timer is configured by default as source of time base, but user 
         can eventually implement his proper time base source (a general purpose 
         timer for example or other time source), keeping in mind that Time base 
         duration should be kept 1ms since PPP_TIMEOUT_VALUEs are defined and 
         handled in milliseconds basis.
       - Set NVIC Group Priority to 4
       - Low Level Initialization
     */
  HAL_Init();
  /* Configure the system clock to 100 MHz */
  SystemClock_Config();
  
  /* -1- Enable GPIO Clock (to be able to program the configuration registers) */
  LED1_GPIO_CLK_ENABLE();
  LED2_GPIO_CLK_ENABLE();
  LED3_GPIO_CLK_ENABLE();
  /* -2- Configure IO in output push-pull mode to drive external LEDs */
  GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull  = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  GPIO_InitStruct.Pin = LED1_PIN;
  HAL_GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStruct);
  GPIO_InitStruct.Pin = LED2_PIN;
  HAL_GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStruct);
  GPIO_InitStruct.Pin = LED3_PIN;
  HAL_GPIO_Init(LED3_GPIO_PORT, &GPIO_InitStruct);
  /* -3- Toggle IO in an infinite loop */
  while (1)
  {
    HAL_GPIO_TogglePin(LED1_GPIO_PORT, LED1_PIN);
    /* Insert delay 100 ms */
    HAL_Delay(100);
    HAL_GPIO_TogglePin(LED2_GPIO_PORT, LED2_PIN);
    /* Insert delay 100 ms */
    HAL_Delay(100);
    HAL_GPIO_TogglePin(LED3_GPIO_PORT, LED3_PIN);
    /* Insert delay 100 ms */
    HAL_Delay(100);
  }
}


接着在KEIL里面检查一下烧录相关的设置,打开项目设置:

4.png

5.png

点击Download,即可烧录程序至F412.

6.png

实物展示:

QQMail_0.gif

二、增加TFT屏幕相关驱动

本着从易到难的方式,在前期实现GPIO驱动的基础上,通过更多的GPIO引脚模拟TFT的SPI引脚功能,来实现驱动TFT屏幕的目标。

硬件连接方面:

7.png

对应到开发板上的Arduino接口电路图如下:

8.png


PIN相关的操作如下:

#define	SPI_MOSI_SET  	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET)    
#define	SPI_SCLK_SET  	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET) 
#define	LCD_CS_SET      HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_SET)//片选
#define	LCD_RS_SET	HAL_GPIO_WritePin(GPIOD, GPIO_PIN_15, GPIO_PIN_SET)//数据/命令	  
#define	LCD_RST_SET	HAL_GPIO_WritePin(GPIOF, GPIO_PIN_12, GPIO_PIN_SET)//复位

#define	SPI_MOSI_CLR  	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_RESET)    
#define	SPI_SCLK_CLR  	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET 							    
#define	LCD_CS_CLR      HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET) //片选
#define	LCD_RS_CLR	HAL_GPIO_WritePin(GPIOD, GPIO_PIN_15, GPIO_PIN_RESET)//数据/命令	 
#define	LCD_RST_CLR	HAL_GPIO_WritePin(GPIOF, GPIO_PIN_12, GPIO_PIN_RESET)//复位


TFT屏幕的接口不是Arduino兼容屏幕,为了避免繁琐的接线从而设计了一个简易转接板:

9.png


Snipaste_2025-08-04_13-07-04.png


适配在一起:

10.png


代码实现上,首先是lcd初始化:

void LCD_Init(void)
{  
LCD_GPIOInit();//LCD GPIO3?ê??ˉ
 LCD_RESET(); //LCD ?′??
//*************2.4inch ILI93413?ê??ˉ**********//
LCD_WR_REG(0xCF);  
LCD_WR_DATA(0x00); 
LCD_WR_DATA(0xD9); //0xC1 
LCD_WR_DATA(0X30); 
LCD_WR_REG(0xED);  
LCD_WR_DATA(0x64); 
LCD_WR_DATA(0x03); 
LCD_WR_DATA(0X12); 
LCD_WR_DATA(0X81); 
LCD_WR_REG(0xE8);  
LCD_WR_DATA(0x85); 
LCD_WR_DATA(0x10); 
LCD_WR_DATA(0x7A); 
LCD_WR_REG(0xCB);  
LCD_WR_DATA(0x39); 
LCD_WR_DATA(0x2C); 
LCD_WR_DATA(0x00); 
LCD_WR_DATA(0x34); 
LCD_WR_DATA(0x02); 
LCD_WR_REG(0xF7);  
LCD_WR_DATA(0x20); 
LCD_WR_REG(0xEA);  
LCD_WR_DATA(0x00); 
LCD_WR_DATA(0x00); 
LCD_WR_REG(0xC0);    //Power control 
LCD_WR_DATA(0x1B);   //VRH[5:0] 
LCD_WR_REG(0xC1);    //Power control 
LCD_WR_DATA(0x12);   //SAP[2:0];BT[3:0] 0x01
LCD_WR_REG(0xC5);    //VCM control 
LCD_WR_DATA(0x08);  //30
LCD_WR_DATA(0x26);  //30
LCD_WR_REG(0xC7);    //VCM control2 
LCD_WR_DATA(0XB7); 
LCD_WR_REG(0x36);    // Memory Access Control 
LCD_WR_DATA(0x08); 
LCD_WR_REG(0x3A);   
LCD_WR_DATA(0x55); 
LCD_WR_REG(0xB1);   
LCD_WR_DATA(0x00);   
LCD_WR_DATA(0x1A); 
LCD_WR_REG(0xB6);    // Display Function Control 
LCD_WR_DATA(0x0A); 
LCD_WR_DATA(0xA2); 
LCD_WR_REG(0xF2);    // 3Gamma Function Disable 
LCD_WR_DATA(0x00); 
LCD_WR_REG(0x26);    //Gamma curve selected 
LCD_WR_DATA(0x01); 
LCD_WR_REG(0xE0);    //Set Gamma 
LCD_WR_DATA(0x0F); 
LCD_WR_DATA(0x1D); 
LCD_WR_DATA(0x1A); 
LCD_WR_DATA(0x0A); 
LCD_WR_DATA(0x0D); 
LCD_WR_DATA(0x07); 
LCD_WR_DATA(0x49); 
LCD_WR_DATA(0X66); 
LCD_WR_DATA(0x3B); 
LCD_WR_DATA(0x07); 
LCD_WR_DATA(0x11); 
LCD_WR_DATA(0x01); 
LCD_WR_DATA(0x09); 
LCD_WR_DATA(0x05); 
LCD_WR_DATA(0x04);  
LCD_WR_REG(0XE1);    //Set Gamma 
LCD_WR_DATA(0x00); 
LCD_WR_DATA(0x18); 
LCD_WR_DATA(0x1D); 
LCD_WR_DATA(0x02); 
LCD_WR_DATA(0x0F); 
LCD_WR_DATA(0x04); 
LCD_WR_DATA(0x36); 
LCD_WR_DATA(0x13); 
LCD_WR_DATA(0x4C); 
LCD_WR_DATA(0x07); 
LCD_WR_DATA(0x13); 
LCD_WR_DATA(0x0F); 
LCD_WR_DATA(0x2E); 
LCD_WR_DATA(0x2F); 
LCD_WR_DATA(0x05); 
LCD_WR_REG(0x2B); 
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x01);
LCD_WR_DATA(0x3f);
LCD_WR_REG(0x2A); 
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0xef); 
LCD_WR_REG(0x11); //Exit Sleep
HAL_Delay(120);
LCD_WR_REG(0x29); //display on
LCD_direction(USE_HORIZONTAL);//设置LCD显示方向
LCD_Clear(WHITE);//清全屏白色
}

void LCD_WR_DATA(uint8_t data)
{
   LCD_CS_CLR;
	 LCD_RS_SET;
   SPIv_WriteData(data);
   LCD_CS_SET;
}

 

其次是写数据和写命令:

void LCD_WriteReg(uint8_t LCD_Reg, uint16_t LCD_RegValue)
{
LCD_WR_REG(LCD_Reg);  
LCD_WR_DATA(LCD_RegValue);     
} 


void LCD_WR_REG(uint8_t data)
{ 
   LCD_CS_CLR;     
   LCD_RS_CLR;	  
   SPIv_WriteData(data);
   LCD_CS_SET;	
}

void LCD_WR_DATA(uint8_t data)
{
   LCD_CS_CLR;
   LCD_RS_SET;
   SPIv_WriteData(data);
   LCD_CS_SET;
}




三、测试

QQMail_0 (2).gif


2024/8/8 触摸部分基本正常工作,如下所示:凯蒂猫 + EEPW手写。后续整理再分享给大家。

11.png

四、总结

通过本次的测评,体验了STM32的CubeMx强大的代码生成功能,用户可以根据使用习惯来生成适配KEIL或者IAR或者STM32CUBE IDE的工程。进而在此基础上,开发出更加有趣、功能更加丰富的功能。

同时借助本次测评机会,也验证了前段时间打板的一个TFT转接板的功能正常,这样后续在进行屏幕显示相关功能时,就无需通过杜邦线来回穿梭了,同时也避免了杜邦线失效带来的一些困扰。





关键词: STM32     TFT     NUCLEO-F412ZG    

专家
2025-08-04 19:43:12     打赏
2楼

感谢分享


专家
2025-08-04 19:46:49     打赏
3楼

感谢分享


院士
2025-08-04 10:21:27     打赏
4楼

精品文章!

特别对刚刚拿到板子的网友,上手起步帮助巨大。


话说,楼主要是能开源自己的工程文件和PCB板就更好了


菜鸟
2025-08-04 16:08:15     打赏
5楼

感谢分享,有FPC软排线的资料吗


专家
2025-08-04 23:34:28     打赏
6楼

感谢分享


工程师
2025-08-04 12:08:56     打赏
7楼


工程师
2025-08-04 14:35:52     打赏
8楼

怎么申请这块开发板?


专家
2025-08-04 11:15:32     打赏
9楼

感谢分享


工程师
2025-08-04 16:44:46     打赏
10楼

赞!


共10条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
北海为什么叫北海 盛夏是什么时候 金字旁和什么有关 吉可以加什么偏旁 即日是什么意思
星星是什么 满满的回忆什么意思 什么水果含钾 肠道菌群失调吃什么药 无眠是什么意思
慕名而来是什么意思 ce是什么元素 两个gg是什么牌子的包包 肛门长肉球是什么原因 任性是什么意思
归零是什么意思 蛔虫和蛲虫有什么区别 刚满月的小狗吃什么 结婚需要什么证件 哇咔咔是什么意思
堪忧是什么意思96micro.com 头出汗多至头发湿透是什么原因hcv7jop4ns6r.cn 痛风吃什么水果好jinxinzhichuang.com 结石排出来是什么感觉bjhyzcsm.com 性冷淡吃什么药bjhyzcsm.com
水溶性是什么意思hcv7jop6ns7r.cn 海东青是什么鸟hcv7jop9ns5r.cn 变异性哮喘咳嗽吃什么药hcv8jop3ns5r.cn 福禄双全是什么意思hcv9jop6ns7r.cn 白带有血丝是什么情况hcv9jop0ns6r.cn
青红皂白的皂是什么颜色hcv8jop0ns9r.cn ct是什么hcv8jop0ns1r.cn 女人喝红酒有什么好处hcv8jop2ns0r.cn 吸顶灯什么牌子的好hcv7jop5ns6r.cn 过氧化氢一个加号什么意思hcv9jop6ns7r.cn
良民是什么意思0297y7.com 27属相是什么生肖hcv7jop9ns9r.cn 爱叶有什么作用和功效travellingsim.com 男属猴和什么属相最配hcv9jop2ns8r.cn 过敏性咳嗽吃什么药好hcv8jop9ns9r.cn
百度