当前位置: 首页 > news >正文

长沙seo关键词品牌网站建设优化公司哪家好

长沙seo关键词,品牌网站建设优化公司哪家好,邢台网站建设要多少钱,上海外贸服装一个1.69寸SPI接口的液晶显示模块#xff0c;有320*24076800个点#xff0c;每个点有2个字节表示RGB的颜色#xff0c;所以需要153.6K个字节的数据来刷新全屏#xff0c;如果SPI口输出数据不是高速并且不紧密排列的话#xff0c;刷新就会比较慢#xff0c;有从下到下的肉…一个1.69寸SPI接口的液晶显示模块有320*24076800个点每个点有2个字节表示RGB的颜色所以需要153.6K个字节的数据来刷新全屏如果SPI口输出数据不是高速并且不紧密排列的话刷新就会比较慢有从下到下的肉眼可见的刷新过程现就是希望使用数据缓冲区我理解这就是显存的概念吧来快速刷新显示区域。 原始的单个字符的显示程序 /******************************************************************************函数说明显示单个字符入口数据x,y显示坐标num 要显示的字符fc 字的颜色bc 字的背景色sizey 字号mode: 0非叠加模式 1叠加模式返回值 无 ******************************************************************************/ void LCD_ShowChar(uint16_t x,uint16_t y,uint8_t num,uint16_t fc,uint16_t bc,uint8_t sizey,uint8_t mode) {uint8_t temp,sizex,t,m0;uint16_t i,TypefaceNum;//一个字符所占字节大小uint16_t x0x;sizexsizey/2;TypefaceNum(sizex/8((sizex%8)?1:0))*sizey;numnum- ; //得到偏移后的值LCD_Address_Set(x,y,xsizex-1,ysizey-1); //设置光标位置for(i0;iTypefaceNum;i){ if(sizey12)tempascii_1206[num][i]; //调用6x12字体else if(sizey16)tempascii_1608[num][i]; //调用8x16字体else if(sizey24)tempascii_2412[num][i]; //调用12x24字体else if(sizey32)tempascii_3216[num][i]; //调用16x32字体else return;for(t0;t8;t){if(!mode)//非叠加模式{if(temp(0x01t))LCD_WR_DATA(fc); //每一个点发送2个字节数据else LCD_WR_DATA(bc);m;if(m%sizex0){m0;break;}}else//叠加模式{if(temp(0x01t))LCD_DrawPoint(x,y,fc);//画一个点x;if((x-x0)sizex){xx0;y;break;}}}} }由if(temp(0x01t))LCD_WR_DATA(fc); //每一个点发送2个字节数据 else LCD_WR_DATA(bc); 这几句说明每个点由SPI发送2个字节的数据出去而且是一边计算数据一边发送数据速度较慢可以肉眼可见的逐字显示的。 改用缓冲区显示单个字符 void LCD_ShowChar_new(uint16_t x,uint16_t y,uint8_t num,uint16_t fc,uint16_t bc,uint8_t sizey,uint8_t mode) {uint8_t temp,sizex,t,m0;uint16_t i,TypefaceNum;//一个字符所占字节大小uint16_t x0x;sizexsizey/2;TypefaceNum(sizex/8((sizex%8)?1:0))*sizey;numnum- ; //得到偏移后的值//LCD_Address_Set(x,y,xsizex-1,ysizey-1); //设置光标位置//uint8_t data[TypefaceNum * 2 * 8]; //static uint8_t data[1024]; //重要用静态变量或者用全局变量一个字符作为一个缓冲区uint16_t xx 0;for(i0; iTypefaceNum; i){if(sizey12)tempascii_1206[num][i]; //调用6x12字体else if(sizey16)tempascii_1608[num][i]; //调用8x16字体else if(sizey24)tempascii_2412[num][i]; //调用12x24字体else if(sizey32)tempascii_3216[num][i]; //调用16x32字体else return;for(t0;t8;t){if(!mode)//非叠加模式 带缓冲区实现快显示功能{if(temp(0x01t)){data[xx] fc8;data[xx] fc; // data[i*2*8 t] fc8; // data[i*2*8 t 1] fc; // LCD_WR_DATA(fc);}else{data[xx] bc8;data[xx] bc; // data[i*2*8 t] bc8; // data[i*2*8 t 1] bc; // LCD_WR_DATA(bc);}m;if(m%sizex0){m0;break;}}else//叠加模式{if(temp(0x01t))LCD_DrawPoint(x,y,fc);//画一个点x;if((x-x0)sizex){xx0;y;break;}}}}while(HAL_SPI_GetState(hspi1)HAL_SPI_STATE_BUSY_TX); //等待SPI发送完成LCD_Address_Set(x,y,xsizex-1,ysizey-1); //设置光标位置//while(HAL_SPI_GetState(hspi1)HAL_SPI_STATE_BUSY_TX); //等待SPI发送完成HAL_SPI_Transmit_DMA(hspi1, data, TypefaceNum * 2 * 8); //这句有严重问题会死机OK // while(HAL_SPI_GetState(hspi1)HAL_SPI_STATE_BUSY_TX); //等待SPI发送完成}使用缓冲区的方法还是和全屏刷新一样先把数据都放在数组然后一次性SPI口发送出去。 缓冲区的大小是按照32字体大小的字符来计算32字体是 16*32512个点1024个字节所以使用data是1024个字节的缓冲区这个缓冲区必须是静态或者全局的这个问题困扰了我好久一开始就是显示不正常或者死机我的理解是SPI要取数据发送但缓冲区没有了被系统回收了。 使用缓冲区后字符显示都是直接显示不再是一个一个字符逐个显示的感觉了
http://www.dnsts.com.cn/news/43613.html

相关文章:

  • 温州网站制作系统0453牡丹江信息网手机版
  • 备案期间网站关闭潍坊做网站
  • 网站建设的收获大型公司建站
  • 只做二手奢侈品的网站高端网站设计平台高端网站设计企业
  • 做茶歇的网站写网页用什么语言
  • 海南住房和城乡建设厅网站登陆上海专业做网站的公司
  • wordpress多站点 域名备案网站名称攻略
  • 昆明市门户网站恩施网站开发
  • 自己做视频网站怎么让加载速度变快网站内部代码优化
  • 自己做的网站能备案吗网站宣传策划方案
  • 海淀教育人才网站内蒙古自治区生态文明建设网站
  • 网站开发财务费用云主机网站源码
  • 怎么申请建立一个公司网站上海家政公司排名
  • 网站防红怎么做的python 网站开发 sae
  • 东光网站建设网站如何做链接
  • 大连住房和城乡建设部网站自己做的网站在百度怎么发布
  • 制作响应式网站厦门 网站建设
  • 眉山网站优化做企业官网还有必要吗
  • 五合一网站建设费用手机优化师下载
  • 建立一个网站需要多少钱wordpress 透明文章
  • 做一个网站平台需要什么重庆公司大学派斯学院
  • 微软网站开发工具本地数据库搭建网站
  • 学校网站建设招标方案国家高新技术企业图片
  • 网站备案资料 下载中文在线っと好きだっ
  • 做网站的可以黑客户的网站吗做雕塑设计的网站
  • wordpress去掉搜索框做seo前景怎么样
  • 网络科技网站无锡微信网站
  • 中餐网站模板莞城网页设计
  • 做电影视频网站赚钱嘛大连网页制作培训学校
  • 有哪些网站可以做seo推广如何制作网站地图