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

福田做棋牌网站建设哪家好百度上的广告多少钱一个月

福田做棋牌网站建设哪家好,百度上的广告多少钱一个月,wordpress全文,唐山建设网站制作项目开源链接 github主页https://github.com/snqx-lqh本项目github地址https://github.com/snqx-lqh/STM32F103C8T6HalDemo作者 VXQinghua-Li7 📖 欢迎交流 如果开源的代码对你有帮助,希望可以帮我点个赞👍和收藏 项目说明 最近调试了一款1…

项目开源链接

github主页https://github.com/snqx-lqh
本项目github地址https://github.com/snqx-lqh/STM32F103C8T6HalDemo
作者 VXQinghua-Li7

📖 欢迎交流 如果开源的代码对你有帮助,希望可以帮我点个赞👍和收藏

项目说明

最近调试了一款1.3寸的ST7789的液晶显示屏,主要使用的是STM32HAL库和中景元电子提供的库函数,使用软件SPI和硬件SPI分别成功的驱动了显示屏。这篇文章分享一下在使用过程中遇到的问题。
下面是实际的效果,使用的是面包板。
在这里插入图片描述

代码移植

主要提供了一个接口函数的部分。需要根据自己实际单片机的操作函数来修改这些引脚的变化方式。如果打开了软件SPI,需要把LCD_USE_SOFT_SPI 置1,而且是HAL库的话,需要使用CubeMx把硬件SPI去掉,然后初始化引脚为普通的输入输出模式。软件SPI我是使用的函数指针的方式写的,使用前,需要初始化一个对象,并且将对应的操作函数赋值。其余的操作和中景元电子差不多,可以看开源代码。默认我是使用的硬件SPI。

/**************** 用户处理区域  Start *********************/
// 这部分处理自己写的时候可以分文件#define LCD_DELAY_XMS(XMS)  HAL_Delay(XMS)#define LCD_USE_SOFT_SPI 0/*** @brief   初始化LCD相关引脚,以及初始化SPI,如果使能了软件spi需要初始化软件相关的引脚* @param   : [输入/出] * @retval**/
void lcd_spi_init()
{// 使用的HAL库已经自己初始化了
}/*** @brief   设置RES引脚电平* @param   level : 电平 0低 1高* @retval**/
void lcd_res_set_level(uint8_t level)
{if(0 == level){HAL_GPIO_WritePin(LCD_RES_GPIO_Port,LCD_RES_Pin,GPIO_PIN_RESET);}else if(1 == level){HAL_GPIO_WritePin(LCD_RES_GPIO_Port,LCD_RES_Pin,GPIO_PIN_SET);}
}/*** @brief   设置DC引脚电平* @param   level : 电平 0低 1高* @retval**/
void lcd_dc_set_level(uint8_t level)
{if(0 == level){HAL_GPIO_WritePin(LCD_DC_GPIO_Port,LCD_DC_Pin,GPIO_PIN_RESET);}else if(1 == level){HAL_GPIO_WritePin(LCD_DC_GPIO_Port,LCD_DC_Pin,GPIO_PIN_SET);}
}/*** @brief   设置CS引脚电平* @param   level : 电平 0低 1高* @retval**/
void lcd_cs_set_level(uint8_t level)
{if(0 == level){}else if(1 == level){}
}/*** @brief   设置BLK引脚电平* @param   level : 电平 0低 1高* @retval**/
void lcd_blk_set_level(uint8_t level)
{if(0 == level){HAL_GPIO_WritePin(LCD_BLK_GPIO_Port,LCD_BLK_Pin,GPIO_PIN_RESET);}else if(1 == level){HAL_GPIO_WritePin(LCD_BLK_GPIO_Port,LCD_BLK_Pin,GPIO_PIN_SET);}
}#if LCD_USE_SOFT_SPI
#include "bsp_soft_spi.h"static void set_sck_level(uint8_t level)
{if(0 == level){HAL_GPIO_WritePin(SPI1_SCK_GPIO_Port,SPI1_SCK_Pin,GPIO_PIN_RESET);}else{HAL_GPIO_WritePin(SPI1_SCK_GPIO_Port,SPI1_SCK_Pin,GPIO_PIN_SET);}
}static void set_mosi_level(uint8_t level)
{if(0 == level){HAL_GPIO_WritePin(SPI1_MOSI_GPIO_Port,SPI1_MOSI_Pin,GPIO_PIN_RESET);}else{HAL_GPIO_WritePin(SPI1_MOSI_GPIO_Port,SPI1_MOSI_Pin,GPIO_PIN_SET);}
}static uint8_t get_miso_level( )
{uint8_t level;level = HAL_GPIO_ReadPin(SPI1_MISO_GPIO_Port,SPI1_MISO_Pin);return level; 
}//定义软件SPI变量
soft_spi_t soft_spi = {.spi_init           = lcd_spi_init,.set_spi_sck_level  = set_sck_level,.set_spi_mosi_level = set_mosi_level,.spi_miso_read      = get_miso_level,.spi_mode=  2,
};
#else#include "spi.h"#endif
/*** @brief   lcd的SPI收发数据 * @param    * @retval**/
uint8_t lcd_read_write_byte(uint8_t TxData)
{uint8_t RxData;#if LCD_USE_SOFT_SPIRxData = soft_spi_read_write_byte(&soft_spi,TxData);	#elseHAL_SPI_TransmitReceive(&hspi1,&TxData,&RxData,1, 100);  #endifreturn RxData;
}/**************** 用户处理区域  end ******************/

移植BUG

使用过程中,我使用软件SPI的时候,模式0和1都不行,调到模式2才可以,使用硬件SPI的时候,多种模式都可以,除了模式3不行,这让我比较困惑,如果有人能告诉我原因,欢迎评论区留言。还有就是,如果你驱动不成功,尝试一下换一下SPI的模式。就是CPOL和CPHA这两个参数的设置值。还有就是,中景元电子不同屏幕牌子好像初始化的方式不太一样。可以淘宝看看你的属于哪一款。

http://www.dtcms.com/wzjs/405866.html

相关文章:

  • 网站建设战略东莞网站推广营销
  • dw怎么制作好看的个人网页宁波seo网站推广
  • 工信部icp备案管理系统郑州关键词网站优化排名
  • 想要弄一个网站怎么弄seo优化效果
  • 视频网站做游戏分发今日头条新闻大事件
  • 收藏手机网站代码扬州网络推广公司
  • 网站更新与维护网站手机版排名seo
  • 靖江市属于哪里有做网站的互联网网络推广公司
  • 广州网站开发平台广东vs北京首钢
  • 冠县网站建设营销策划公司的经营范围
  • 接私活做网站设计网络营销外包推广价格
  • 深圳市龙华区网站建设seo优化百度技术排名教程
  • 寻找东莞微信网站建设产品软文范例100字
  • 网站的线下推广怎么做宁波seo推广服务
  • 北京网站建设需要多少钱济宁seo公司
  • xyz溢价域名最好的网站网络违法犯罪举报网站
  • 学习网站建设与管理谷歌搜索广告优化
  • 做影视免费网站违法吗关键词首页排名优化价格
  • 云适配 网站什么关键词可以搜到那种
  • 设计学校排名中国百度app优化
  • 温州市网站制作公司全网最低价24小时自助下单平台
  • 决定网站打开的速度吗免费加客源软件
  • 网站审核时间推广软件的app
  • 哪里网站做的好外链群发
  • 手机网站建设域名空间最新新闻消息
  • 建设一个网站需要什么硬件如何做网址
  • 北京住房和经济建设发展委员会网站家庭优化大师免费下载
  • 自己做网站怎么做游戏推广员怎么做
  • 简历模板电子版免费seo视频教程汇总
  • 做网站的服务器要什么格式西安核心关键词排名