左图是原图,右图是
仿真出来的图
用LCD12864显示图片的时候,水平方向只有屏幕左边16个点会显示,垂直方向能够全部显示,大家能够帮忙回答一下吗?谢谢
- void v_Lcd12864DrawPicture_f( unsigned char code *pPicture )
- {
- unsigned char i, j, k ;
- v_Lcd12864SendCmd_f( 0x34 );
- for( i = 0 ; i < 2 ; i++ )//·ÖÉÏÏÂÁ½ÆÁд
- {
- for( j = 0 ; j < 32 ; j++ )
- {
- v_Lcd12864SendCmd_f( 0x80 + j ) ;//дY×ø±ê
- if( i == 0 ) //дX×ø±ê
- {
- v_Lcd12864SendCmd_f( 0x80 ) ;
- }
- else
- {
- v_Lcd12864SendCmd_f( 0x88 ) ;
- }
- for( k = 0 ; k < 16 ; k++ ) //дһÕûÐÐÊý¾Ý
- {
- v_Lcd12864SendData_f( *pPicture++ ) ;
- }
- }
- }
- v_Lcd12864SendCmd_f( 0x36 ) ;
- v_Lcd12864SendCmd_f( 0x30 ) ;
- }
复制代码
不是超出范围了,是绘图的时候,水平方向的地址没有自动增加(手册上说会自动增加的),每写完16位之后手动设置水平地址再写就能够正常显示了。至于为什么水平地址没有自增,我也不知道。
一周热门 更多>