佚名通过本文主要向大家介绍了51单片机tft,51单片机驱动tft,51单片机答辩问题,51单片机常见问题,51单片机答辩常见问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:51单片机控制TFT液晶显示遇到的问题
描述:
解决方案1:
描述:
51单片机TFT液晶定时器中断sprintf函数
用51定时器中断内操作TFT液晶屏,显示实时速度可以正常显示,但是让它对时速累加转换成路程再进行输出时,TFT液晶上显示的两部分内容都是实时速度。变量是用sprintf函数放到数组中的。不明白是什么原因,是定时器内可能产生的循环嵌套导致的还是由于sprintf引起的?资料说sprintf操作起来可能出意向不到的问题。具体要怎么解决,求解~~~解决方案1:
使用sprintf函数极有可能因为数据量过大,产生堆栈溢出,可以使用snprintf函数来试一下,避免这个问题。
snprintf函数的定义为:int snprintf(char *str, size_t size, const char*formant, ...)
当要复制的数据大于size值时,函数会自动结束,后面的数据被丢弃,当不会发生缓冲区溢出,楼主可以尝试一下。
sprintf应该是打印到串口上的吧,跟你你物理连接能对上号?
解决方案3: 参考
“ColorScreen(串口彩显LCD控制).rar ”
http://download.csdn.net/detail/schlafenhamster/7706743
“这是一个 串口 彩显 LCD 的控制程序. 实现了 "彩色液晶智能显示器使用说明书"的 串口命令.”
定时器内调用printf,或者sprintf,因为去代码时间长,如果定时时间太短,可能会在函数执行结束之前再次定时,你可以在进入定时函数的时候关闭定时中断,在退出定时函数的时候,再打开定时中断(即在定时函数开头关中断,函数结束位置开中断)