完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大伙帮我看看为什么,LCD屏用的是spi总线控制,单片机用的是msp430fr5969,程序屏刷颜色是OK的,也就是屏初始化、写数据,写命令是没问题的所以程序这三部分补贴出来,现在是不能画线,和显示字符。显示字符的先不用理会,先解决画点问题先,求解!
/************************************************* 函数名:LCD_SetRegion 功能:设置lcd显示区域,在此区域写点数据自动换行 入口参数:xy起点和终点,Y_IncMode表示先自增y再自增x 返回值:无 *************************************************/ void Lcd_SetRegion(uint16_t x_start,uint16_t y_start,uint16_t x_end,uint16_t y_end) { LCD_CS_LOW; LCD_WriteIndex(0x2a); LCD_WriteData16Bit(x_start>>8,x_start); LCD_WriteData16Bit(x_end>>8,x_end); LCD_WriteIndex(0x2b); LCD_WriteData16Bit(y_start>>8,y_start); LCD_WriteData16Bit(y_end>>8,y_end); LCD_WriteIndex(0x2c); LCD_CS_HIGH; } void Lcd_Clear(uint16_t Color) //清屏,刷屏 { unsigned int i,m; Lcd_SetRegion(0,0,X_MAX_PIXEL-1,Y_MAX_PIXEL-1); LCD_RS_DC_HIGH; LCD_CS_LOW; for(i=0;i for(m=0;m LCD_WriteData(Color>>8); LCD_WriteData(Color); } } LCD_CS_HIGH; } 上面这两个函数是没问题的,颜色刷屏测试可以 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //函数功能:设置光标位置 void LCD_SetCursor(unsigned int x,unsigned int y) { unsigned int xpos,ypos; // xpos = 239 - x; xpos = x; ypos = y; LCD_WriteIndex(0x2A); LCD_WriteData16Bit(xpos>>8,xpos); LCD_WriteIndex(0x2B); LCD_WriteData16Bit(ypos>>8,ypos); LCD_WriteIndex(0x2c); } //函数功能:在指定位置画点 void LCD_DrawPoint(unsigned int x,unsigned int y,unsigned int Color) { LCD_SetCursor(x,y); LCD_WriteData16Bit(Color>>8,Color); } //函数功能:画线 void LCD_DrawLine(unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2, unsigned int Color) { unsigned int t; int xerr=0,yerr=0,delta_x,delta_y,distance; int incx,incy,uRow,uCol; delta_x=x2-x1; delta_y=y2-y1; uRow=x1; uCol=y1; if(delta_x>0) incx=1; else if(delta_x==0) incx=0; else { incx=-1;delta_x=-delta_x; } if(delta_y>0) incy=1; else if(delta_y==0) incy=0; else { incy=-1;delta_y=-delta_y; } if( delta_x>delta_y) distance=delta_x; else distance=delta_y; for(t=0;t<=distance+1;t++ ) { LCD_DrawPoint(uRow,uCol,Color); xerr+=delta_x ; yerr+=delta_y ; if(xerr>distance) { xerr-=distance; uRow+=incx; } if(yerr>distance) { yerr-=distance; uCol+=incy; } } } |
|
相关推荐
5个回答
|
|
哦哦,我的问题已经解决。
|
|
|
|
帮顶....
|
|
|
|
能不能把你的TFT的程序给我??QQ1436890290,非常感谢!
|
|
|
|
但是程序还没找出问题呀 给你也没用呀
|
|
|
|
你好,我目前遇到和已一样的问题,请问你是怎么解决的呢?
|
|
|
|
只有小组成员才能发言,加入小组>>
3023个成员聚集在这个小组
加入小组2906 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3481 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2333 浏览 1 评论
4792 浏览 1 评论
2564 浏览 1 评论
1304浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3523浏览 2评论
2907浏览 1评论
1485浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 05:24 , Processed in 1.279405 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号