|
发表于 2013-12-5 21:06:49
|
显示全部楼层
给楼主举一个RA8875的例子。特别注意要先开窗,退出的时候恢复默认窗口- /*
- *********************************************************************************************************
- * 函 数 名: RA8875_DrawBMP
- * 功能说明: 在LCD上显示一个BMP位图,位图点阵扫描次序:从左到右,从上到下
- * 形 参:
- * _usX, _usY : 图片的坐标
- * _usHeight :图片高度
- * _usWidth :图片宽度
- * _ptr :图片点阵指针
- * 返 回 值: 无
- *********************************************************************************************************
- */
- void RA8875_DrawBMP(uint16_t _usX, uint16_t _usY, uint16_t _usHeight, uint16_t _usWidth, uint16_t *_ptr)
- {
- uint32_t index = 0;
- const uint16_t *p;
- /* 设置图片的位置和大小, 即设置显示窗口 */
- RA8875_SetDispWin(_usX, _usY, _usHeight, _usWidth);
- s_ucRA8875Busy = 1;
- RA8875_WriteCmd(0x02); /* 准备读写显存 */
- p = _ptr;
- for (index = 0; index < _usHeight * _usWidth; index++)
- {
- /*
- armfly : 进行优化, 函数就地展开
- RA8875_WriteRAM(_ptr[index]);
- 此处可考虑用DMA操作
- */
- RA8875_WriteData16(*p++);
- }
- s_ucRA8875Busy = 0;
- /* 退出窗口绘图模式 */
- RA8875_QuitWinMode();
- }
复制代码 |
|