完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我用lpc1788做一个图片显示的程序。刚开始试验时,是将24位图片转换成C语言数组,直接映射到显存地址,显示图片,图片显示正常。后来我按照这个思路,从SD卡读取显示图片,发现图片像素值错位了。我将pDst16数据通过串口发送出来发现和数组的形式是一样的,所以我现在不知道是哪个地方出了问题。
这个是正确的: pDst16 = (unsigned long *)LCD_VRAM_BASE_ADDR; pBmp8 = (uint8_t *)ac480x272Pic01;//数组转换成指针,并把高低位组合 for(i=0;i<(C_GLCD_H_SIZE * C_GLCD_V_SIZE);i++) { *pDst16 =*pBmp8++<<16; *pDst16 +=*pBmp8++<<8; *pDst16 +=*pBmp8++; *pDst16++; } 错误的: pDst16 = (unsigned long *)LCD_VRAM_BASE_ADDR; for (i=0;i<480*272;i++) { f_read(&bmpfsrc,&pColorData,3,&read_num); // 每次读取三个像素 pBmp8 = (uint8_t *)pColorData; // 数组转换成指针 *pDst16 =*pBmp8++<<16; *pDst16 +=*pBmp8++<<8; *pDst16 +=*pBmp8++; // 三个像素高低位组合,映射到LCD地址上 //xprintf("%d:%xrn",i,*pDst16++); } |
|
相关推荐
2个回答
|
|
ac480x272Pic01是个数组,里面存放着24位图片的270*480*3个像素值。
|
|
|
|
把代码上传看看
|
|
|
|
只有小组成员才能发言,加入小组>>
1907个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36358 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4395 浏览 0 评论
6050 浏览 1 评论
6763 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4212 浏览 0 评论
619浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
614浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
606浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
694浏览 2评论
798浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 12:01 , Processed in 0.988767 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号