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

网站兼容视图网站tag作用

网站兼容视图,网站tag作用,网页设计与制作项目教程答案,珠海市网站建设哪家好配置请参考链接#xff1a;TouchGFX超低配置移植教程-CSDN博客 一#xff0c;显示配置 1.适当增加堆栈大小 2.适当增大缓冲大小 双重缓冲消除了任何撕裂的风险#xff0c;无论渲染下一帧需要多长时间#xff0c;因为TfT控制器#xff0c;例如#xff0c;总是可以访问最…配置请参考链接TouchGFX超低配置移植教程-CSDN博客 一显示配置 1.适当增加堆栈大小 2.适当增大缓冲大小 双重缓冲消除了任何撕裂的风险无论渲染下一帧需要多长时间因为TfT控制器例如总是可以访问最新的完整帧数据。单个缓冲可以消除对外部存储器的需求可能会发生撕裂。部分缓冲消除了对外部内存的需求同时仍然允许将大部分内部内存用于framebuffer之外的事情。 如果“Number of Blocks”设置为1这意味着TouchGFX将只分配一个内存块用于帧缓冲区。这通常适用于简单的图形界面或显示需求不高的应用场景。在这种情况下TouchGFX将使用一个单缓冲区方案来更新和显示图形数据。 然而如果图形界面较为复杂或需要更高的刷新率可能需要使用双缓冲或多缓冲方案来减少屏幕撕裂和闪烁现象。在这种情况下“Number of Blocks”参数的值将相应增加以允许TouchGFX分配更多的内存块用于帧缓冲区。 二硬件配置 1.开启I2C1用于连接触摸芯片,PB6,PB7 2.开启SPI1Transmit Only Master用于LCD 串行数据传输,(PB3,PB5)开启DMA 开启SPI中断用于屏幕刷新完成时调用函数 3.开启QSPI 4线模式用于读写W25Q64 计算请参考链接 4.开启tim6 定时器为TouchGFX提供时钟源 三C/C 基础示例 1.在cpp文件中的c函数外部函数声明 extern C int touchgfxDisplayDriverTransmitActive(); 2.在c文件中的cpp函数外部函数声明 extern void touchgfxTickHandler(void);//也可以省略extern 3.使cpp文件中的函数兼容c文件使用 extern C void DisplayDriver_TransferCompleteCallback() {PartialFrameBufferManager::tryTransmitBlockFromIRQ(); } 要在其他 C 文件中使用在 TouchGFXGeneratedHAL.cpp 中定义的 DisplayDriver_TransferCompleteCallback 函数你需要确保以下几点 声明函数原型在需要使用该函数的 C 文件中声明该函数的原型。 确保链接确保在编译和链接时包含 TouchGFXGeneratedHAL.cpp 文件以便链接器能够找到该函数的定义。 由于 DisplayDriver_TransferCompleteCallback 函数被声明为 extern C它具有 C 链接约定因此可以在 C 文件中直接使用。 以下是具体步骤 步骤 1声明函数原型 在需要使用 DisplayDriver_TransferCompleteCallback 函数的 C 文件中声明该函数的原型。 你可以通过创建一个头文件来包含这个声明或者直接在 C 文件中声明。 void touchgfxTickHandler(void); void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {static int counter0;if (htim-Instance TIM6){touchgfxTickHandler();if(counter%2000)toggle_led();} } 4.无论是函数还是全局变量在一个文件中定义了在另一个文件中如果要使用只需要extern外部声明一下就行了其中函数可以省略extern在.h文件中声明只是为了方便管理而已。 四无外扩flash代码移植 TGFX SPI左侧为原始代码右侧为用户代码。无外部flash移植仅提供思路 1点击TouchGFXGeneratedHAL.cpp其位于Application/User/ TouchGFX/target/generated一栏中在该点cpp文件的开头就可以看到四个函数声明前三个都是需要用户自己提供。 //st7789.c volatile uint8_t IsTransmittingBlock_0; /*** Check if a Frame Buffer Block is beeing transmitted.*/ int touchgfxDisplayDriverTransmitActive(void) {return IsTransmittingBlock_; } /*** Check if a Frame Buffer Block ending at bottom may be sent.*/ int touchgfxDisplayDriverShouldTransferBlock(uint16_t bottom) {return 1; } /*** Transmit a Frame Buffer Block.*/ void touchgfxDisplayDriverTransmitBlock(const uint8_t* pixels, uint16_t x, uint16_t y, uint16_t w, uint16_t h) {IsTransmittingBlock_1;ST7789_DrawImage(x,y,w,h,(uint16_t*)pixels); } 2除了上述三个函数还需要注意一个函数DisplayDriver_TransferCompleteCallback用户需要在屏幕刷新完成时调用该函数。 //spi.c extern volatile uint8_t IsTransmittingBlock_; extern void DisplayDriver_TransferCompleteCallback(void); void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi) {if (hspi-Instance SPI1) {IsTransmittingBlock_ 0;DisplayDriver_TransferCompleteCallback();} } 3TouchGFX正常工作的前提条件是需要一个外部的时钟源由于本例程使用的屏为SPI屏STM32CubeMX中配置的时钟源选项默认为Custom即需要用户自己为TouchGFX提供时钟源 //tim.c extern void touchgfxTickHandler(void); void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {static int counter0;if (htim-Instance TIM6){touchgfxTickHandler();if(counter%2000)HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);} } //OSWrappers.cpp extern C {uint8_t isInited 0;} extern C void touchgfxTickHandler() {static uint8_t ms 0;static uint8_t isHigh 0;if(isInited){ms;if(ms20){ms 0;isHigh !isHigh;if(isHigh){OSWrappers::signalVSync();}else{HAL::getInstance()-frontPorchEntered();} }} } 4.使用外部变量 isInited 为 1表示初始化已经成功完成。 extern uint8_t isInited; isInited 1; 5.初始化SPI屏幕开启定时器中断 ST7789_Init(); HAL_TIM_Base_Start_IT(htim6);
http://www.hkea.cn/news/14498944/

相关文章:

  • 利用大平台做网站本地岑溪网站开发
  • 网站做一样的算侵权么学习通网页版
  • 南江红鱼洞水库建设管理局网站购物商城论文
  • 263企业邮箱官方入口东莞seo黑帽培训
  • 网站空间服务器排名中山网站的优化
  • 查做外贸客户的网站青岛做网站企业
  • 怎么样找回网站密码茂民网站建设
  • 配色设计网站推荐网站怎么显示建设中
  • 手机网站整站下载网站建设公司有哪
  • 销售网站内容设计北京建网站公司怎么样
  • 福州网站建设 联系yanktcn 04晋江市住房和城乡建设网站
  • 网站技术实现方案学院网站建设项目范围变更申请表
  • 门户网站html模板戚墅堰建设网站
  • 宜昌网站设计公司二级建造师建设云网站
  • 什么是网站开发设计与实现wordpress商品分销
  • 如何做弹幕网站微信小程序开发app
  • 想让一个网站上线需要怎么做中国纪检监察报单国平
  • 网站建设需要使用哪些设备vs设置网站开发环境
  • 常州网站建设常州外贸网站推广怎么样
  • 网站建设类型分类营业推广怎么写
  • 北京营销型网站定制水淼wordpress
  • 百度网站推广价格查询wordpress single模板
  • 济南建设网站 概况长宁区网站建设
  • 四站合一网站建设价格重庆垫江网站建设
  • 官方网站建设滞后天津房产网
  • 杂志社网站建设意义设计师销售管理软件
  • 酷 网站模板做PHP网站前端网站进不去
  • 太原网站建设公司网站不备案打不开
  • 网科创想网站管理杰奇网站地图怎么做
  • 网站开发需要的所有技术微信小程序文档