Nanger 发表于 2023-4-10 14:13:23

无 printf 函数液晶无法显示

最近使用 STC32G12K128芯片移植了一个 液晶显示屏,驱动是 ILI9341,遇到个问题,当程序里没有 printf这个函数时,液晶无法启动,在程序里添加上 printf这个子函数后液晶就可以正常显示,老是奇怪了,关键是我根本不需要这个 printf函数,串口也没有初始化。

液晶可以正常显示的主程序如下:



液晶无法显示的程序如下:



LCD_Init()完全是按照 DEMO上复制的,LCD_PrintHomePage()显示了一个很简单的界面。


32G12K128 发表于 2023-4-10 14:38:01

有仿真器吗?可以打个断点测一下,或者加个延时或者串口输出信息看一下,是不是-直在输出信息,导致显示屏来不及显示了

Nanger 发表于 2023-4-10 14:57:53

STC32G12K128 发表于 2023-4-10 14:38
有仿真器吗?可以打个断点测一下,或者加个延时或者串口输出信息看一下,是不是-直在输出信息,导致显示屏 ...

现在是加上 printf才能正常显示,删除 printf就不能正常显示

梁工 发表于 2023-4-10 15:05:07

LCD驱动怎么会跟printf有关?printf是操作串口的,LCD驱动是IO操作。

WHX 发表于 2023-4-10 20:51:33

无数的坑告诉我,这种问题一般都是自己的硬件或程序有问题导致的。

Nanger 发表于 2023-4-17 11:18:28

梁工 发表于 2023-4-10 15:05
LCD驱动怎么会跟printf有关?printf是操作串口的,LCD驱动是IO操作。

梁工好,以上问题已解决,是因为使用了 LCM中断向量,但是该中断号大于 31但是没有用汇编处理导致的,处理后一切正常了。

神农鼎 发表于 2023-4-17 11:45:32



深圳国芯人工智能有限公司-工具软件 (stcai.com)

梁工 发表于 2023-4-17 12:03:58

13668840876 发表于 2023-4-17 11:18
梁工好,以上问题已解决,是因为使用了 LCM中断向量,但是该中断号大于 31但是没有用汇编处理导致的,处 ...

嗯,解决就好。

Nanger 发表于 2023-4-17 12:11:37

神农鼎 发表于 2023-4-17 11:45
深圳国芯人工智能有限公司-工具软件 (stcai.com)
用小工具拓展后,void LCM_Interrupt(void) interrupt 59中断号改为 59后会有warning提示:MEMORY SPACE OVERLAP,这个告警信息说明拓展成功了么?直接忽略这个警告就可以了么

JackLaw666 发表于 2023-11-28 08:54:47

学习{:4_196:}
页: [1]
查看完整版本: 无 printf 函数液晶无法显示