蓝牙BLE芯片PHY6222之SPI驱动ST7789
蓝牙BLE芯片PHY6222之SPI驱动ST7789
- 显示效果
- 环境
- SPI初始化
- ST7789初始化
- 显示图片文字
显示效果
环境
1.PHY6222开发板
2.SDK3.1.1----example\ble_peripheral\lcd_demo
3.硬件接线
#define PIN_LCD_BL_EN GPIO_P02//背光
#define PIN_LCD_SPI_SCS GPIO_P23//片选
#define PIN_LCD_RST GPIO_P24//复位
#define PIN_LCD_RS GPIO_P25//数据、命令
#define PIN_LCD_SPI_SDO GPIO_P32//MOSI
#define PIN_LCD_SPI_SDI GPIO_P01//MISO
#define PIN_LCD_SPI_SCK GPIO_P34//时钟
SPI初始化
void reg_spi_init(hal_spi_t* spi_ptr,uint32 speed, GPIO_Pin_e sck_pin,GPIO_Pin_e ssn_pin,GPIO_Pin_e miso_pin,GPIO_Pin_e mosi_pin, SPI_SCMOD_e scmod,SPI_TMOD_e tmod)
{hal_clk_gate_enable((MODULE_e)(MOD_SPI0 + spi_ptr->spi_index));hal_spi_pin_init(spi_ptr,sck_pin,ssn_pin,miso_pin,mosi_pin);hal_spi_master_init(spi_ptr,speed,scmod, tmod);spi_int_disable(spi_ptr);
}
ST7789初始化
//背光上拉输出,写0保持
#define LCD_BL_INIT() \do { \hal_gpio_pin_init(PIN_LCD_BL_EN, GPIO_OUTPUT); \hal_gpio_pull_set(PIN_LCD_BL_EN, STRONG_PULL_UP); \hal_gpio_write(PIN_LCD_BL_EN,0);\hal_gpioretention_register(PIN_LCD_BL_EN);\} while (0)//数据,命令脚上拉输出,写1保持
#define LCD_RS_INIT() \do { \hal_gpio_cfg_analog_io(PIN_LCD_RS,Bit_DISABLE); \hal_gpio_pin_init(PIN_LCD_RS, GPIO_OUTPUT); \hal_gpio_pull_set(PIN_LCD_RS, STRONG_PULL_UP); \hal_gpio_fast_write(PIN_LCD_RS,1); \hal_gpioretention_register(PIN_LCD_RS);\} while (0)
//复位脚上拉输出,写1保持
#define LCD_RST_INIT() \do { \hal_gpio_cfg_analog_io(PIN_LCD_RST,Bit_DISABLE); \hal_gpio_pin_init(PIN_LCD_RST, GPIO_OUTPUT); \hal_gpio_pull_set(PIN_LCD_RST, STRONG_PULL_UP); \hal_gpio_fast_write(PIN_LCD_RST,1); \hal_gpioretention_register(PIN_LCD_RST);\}
//片选脚上拉输出,写1保持
#define LCD_SPI_CS_INIT() \do { \hal_gpio_cfg_analog_io(PIN_LCD_SPI_SCS,Bit_DISABLE); \hal_gpio_pin_init(PIN_LCD_SPI_SCS, GPIO_OUTPUT); \hal_gpio_pull_set(PIN_LCD_SPI_SCS, STRONG_PULL_UP); \EFLASH_SPI_CS_INIT(); \EFLASH_SPI_CS_HIGH(); \hal_gpioretention_register(PIN_LCD_SPI_SCS);\} while (0)
#define SW_SPI_SCL_SET_OUTPUT() hal_gpio_pin_init(PIN_LCD_SPI_SCK, GPIO_OUTPUT);//软件SPI获取st7789ID
get_lcd_drv_id();//初始化屏幕
static const unsigned char __attribute__((aligned (4))) init_cmd_hsd7789[] = {0xFF, 0x36, // Send CMD 0x360xA0, // ºáÆÁ0xFF, 0x3A,0x05,0xFF, 0xB2, // Send CMD 0xB20x0C, 0x0C, 0x00, 0x33, 0x33, // Send DATA 0x0c, 0x0c, 0x00, 0x33, 0x330xFF, 0xB7,0x35,0xFF, 0xBB,0x19,0xFF, 0xC0,0x2c,0xFF, 0xC2,0x01,0xFF, 0xC3,0x12,0xFF, 0xC4,0x20,0xFF, 0xC6,0x0F,0xFF, 0xD0,0xA4, 0xA1, 0xFF, 0xE0,0xD0,0x04,0x0D,0x11,0x13,0x2B,0x3F,0x54,0x4C,0x18,0x0D,0x0B,0x1F,0x23,0xFF, 0xE1,0xD0,0x04,0x0C,0x11,0x13,0x2C,0x3F,0x44,0x51,0x2F,0x1F,0x1F,0x20,0x23,0xFF, 0x21, 0xFF, 0x11, 0xFF, 0x29,
};
显示图片文字
//打开st7789
static const unsigned char __attribute__((aligned (4))) on_cmd_hsd7789[] = {0xff, 0x11,//0xfe, 120, 0xff, 0x29,//0xfe, 10,
};
//设置背景色
void lcd_fill_dat(uint8 x, uint8 y, uint8 w, uint8 h, uint16 dat)
{uint32 len = w * h; lcd_set_region(x, y, w, h); LCD_SPI_CS_LOW();write_color(dat,len); LCD_SPI_CS_HIGH();
}
//显示图片
void LCD_ShowPicture(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
{int i;lcd_set_region(x1,y1,x2,y2);LCD_SPI_CS_LOW();for(i=0;i<1600;i++){ wr_data(image[i*2+1]); //使用取模把图片放在一个数组wr_data(image[i*2]); } delay_us(10);LCD_SPI_CS_HIGH();
}
蓝牙BLE芯片PHY6222之SPI驱动ST7789相关推荐
- 蓝牙BLE芯片PHY6222之烧录以及调试
蓝牙BLE芯片PHY6222之烧录调试 一. 环境 二. 接线 三. 操作 四. J-LINK调试 五. 烧录失败分析 前言:个人学习笔记,不做商业用途. 望每个工程师配得起工程师之名,有独立解决,分 ...
- 蓝牙BLE芯片PHY6222之I2C主从通信
蓝牙BLE芯片PHY6222之I2C主从通信 开发环境 I2C主机 I2C从机 注意事项 开发环境 1.PHY6222开发板 2.SDK版本以及路径:SDK\release_bbb_sdk-PHY62 ...
- 蓝牙BLE芯片PHY6222之OTA
蓝牙BLE芯片PHY6222之OTA 什么是OTA 将OTA驱动移植到应用代码 一.SLB移植 用PhyPlusKit烧录支持SLB的文件 支持SLB的OTA bin文件的制作 使用APP进行SLB升 ...
- 蓝牙BLE芯片PHY6222之GPIO按键操作
蓝牙BLE芯片PHY6222之GPIO按键操作 按键唤醒 IO初始化 按键中断唤醒回调 短按&长按触发的事件 按键唤醒 IO初始化 void key_init(void) {uint8 i;k ...
- 蓝牙技术|智能可穿戴设备中的蓝牙BLE芯片
1975 年,第一块计算器手表问世,智能可穿戴设备开始进入我们的生活.随着技术的发展,越来越多的智能可穿戴设备出现在我们的生活中,比如智能手环.智能眼镜.智能织物等. 这些智能可穿戴设备可以让人们更加 ...
- 蓝牙BLE芯片|伦茨科技智能电容笔芯片-ST17H65
随着平板电脑的流行,有不少厂商都投入到了电容笔的开发当中,现在的电容笔不仅在精度上有了提高,甚至在笔触和压感上的研究都有进步. 电容笔是利用导体材料制作的具有导电特性.用来触控电容式屏幕完成人机对话操 ...
- KT6368A国产蓝牙BLE芯片驱动程序硬件注意事项
目录 1.1 简介 KT6368A芯片是一款支持蓝牙双模的纯数据芯片,蓝牙5.1版本.芯片的亮点在超小尺寸,超级价格.以及简单明了的透传和串口AT控制功能.大大降低了嵌入蓝牙在其它产品的开发难度和成本 ...
- 基于ARM Cortex M0 核心的低功耗蓝牙BLE芯片
MS1793S 是一款基于ARM Cortex M0 核心的低功耗蓝牙芯片,射频采用2.4GHz ISM 频段的频率,2MHz 信道间隔,符合蓝牙规范.MS1793S使用高性能的ARM®Cortex® ...
- CC2541F256RHAR 低功耗蓝牙BLE芯片
CC2541 是一款针对低能耗以及私有 2.4GHz 应用的功率优化的真正片载系统 (SoC) 解决方案. 它使得使用低总体物料清单成本建立强健网络节点成为可能. CC2541 将领先 RF 收发器的 ...
- 蓝牙BLE(协议栈、OSAL、蓝牙APP工具)
目录 蓝牙配对和绑定 蓝牙4.0 BLE 信道(RF Channel) BLE协议栈分层 PHY层(Physical layer 物理层) LL层(Link Layer 链路层) HCI层(Host ...
最新文章
- How to check table locks
- 从基础末尾:CSS适用教程
- 部署在Netweaver上的Fiori应用的WebContent文件夹
- AOS V0.8 发布,JavaEE 应用基础平台
- Flutter根据偏移量转换角度 Offset 的使用实例
- 厉害了!《流浪地球》《疯狂的外星人》票房均破10亿元大关
- Maven学习总结(58)—— 常用的 Maven 镜像地址和中央仓库地址汇总
- linux中如何只拷贝文件夹下的文件,而不包括其子文件夹
- Metronome节拍器
- 【C#进阶3-4】C#设计模式
- holder 插件Android,Android神器级插件
- win2008 mysql 群集_win2003服务器下配置 MySQL 群集(Cluster)的方法 -电脑资料
- IE CSS样式的兼容性问题
- 九爷带你玩转 oracle
- 读书分享-《心智突围》上
- 基于现有电脑和手机,“掌上看家”帮你零投入远程照料家中儿童与老人
- 十几岁的娃娃,下手咋这么狠
- C#实现QQ扫码登录
- 【阅读】A Comprehensive Survey on Electronic Design Automation and Graph Neural Networks——EDA+GNN综述翻译
- matlab 蒙特卡洛法书籍,[转载]matlab的蒙特卡洛算法
热门文章
- PWM整流器仿真。 在simulink中搭建了PWM整流器,采用电压电流双闭环控制,实现了网侧电压与电流同相位
- 【目标检测】目标检测算法-从OverFeat到YOLO
- 北京中波(AM-MW)无线广播发射频率/频道表 (转载)
- 手机地图导航哪个好?手机导航地图推荐
- editormd 上传图片问题解决
- 软考每日一练||网络工程师
- GoogleEarth二次开发平台指南(4) --- 三维视频融合、视频拼接与摄像头控制
- python短时傅里叶变换_短时傅里叶变换(Short Time Fourier Transform)原理及 Python 实现...
- 数学分析教程(科大)——3.3笔记+习题
- 迈普光彩分享 几个细节教你搭建好LED显示屏舞台