蓝牙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相关推荐

  1. 蓝牙BLE芯片PHY6222之烧录以及调试

    蓝牙BLE芯片PHY6222之烧录调试 一. 环境 二. 接线 三. 操作 四. J-LINK调试 五. 烧录失败分析 前言:个人学习笔记,不做商业用途. 望每个工程师配得起工程师之名,有独立解决,分 ...

  2. 蓝牙BLE芯片PHY6222之I2C主从通信

    蓝牙BLE芯片PHY6222之I2C主从通信 开发环境 I2C主机 I2C从机 注意事项 开发环境 1.PHY6222开发板 2.SDK版本以及路径:SDK\release_bbb_sdk-PHY62 ...

  3. 蓝牙BLE芯片PHY6222之OTA

    蓝牙BLE芯片PHY6222之OTA 什么是OTA 将OTA驱动移植到应用代码 一.SLB移植 用PhyPlusKit烧录支持SLB的文件 支持SLB的OTA bin文件的制作 使用APP进行SLB升 ...

  4. 蓝牙BLE芯片PHY6222之GPIO按键操作

    蓝牙BLE芯片PHY6222之GPIO按键操作 按键唤醒 IO初始化 按键中断唤醒回调 短按&长按触发的事件 按键唤醒 IO初始化 void key_init(void) {uint8 i;k ...

  5. 蓝牙技术|智能可穿戴设备中的蓝牙BLE芯片

    1975 年,第一块计算器手表问世,智能可穿戴设备开始进入我们的生活.随着技术的发展,越来越多的智能可穿戴设备出现在我们的生活中,比如智能手环.智能眼镜.智能织物等. 这些智能可穿戴设备可以让人们更加 ...

  6. 蓝牙BLE芯片|伦茨科技智能电容笔芯片-ST17H65

    随着平板电脑的流行,有不少厂商都投入到了电容笔的开发当中,现在的电容笔不仅在精度上有了提高,甚至在笔触和压感上的研究都有进步. 电容笔是利用导体材料制作的具有导电特性.用来触控电容式屏幕完成人机对话操 ...

  7. KT6368A国产蓝牙BLE芯片驱动程序硬件注意事项

    目录 1.1 简介 KT6368A芯片是一款支持蓝牙双模的纯数据芯片,蓝牙5.1版本.芯片的亮点在超小尺寸,超级价格.以及简单明了的透传和串口AT控制功能.大大降低了嵌入蓝牙在其它产品的开发难度和成本 ...

  8. 基于ARM Cortex M0 核心的低功耗蓝牙BLE芯片

    MS1793S 是一款基于ARM Cortex M0 核心的低功耗蓝牙芯片,射频采用2.4GHz ISM 频段的频率,2MHz 信道间隔,符合蓝牙规范.MS1793S使用高性能的ARM®Cortex® ...

  9. CC2541F256RHAR 低功耗蓝牙BLE芯片

    CC2541 是一款针对低能耗以及私有 2.4GHz 应用的功率优化的真正片载系统 (SoC) 解决方案. 它使得使用低总体物料清单成本建立强健网络节点成为可能. CC2541 将领先 RF 收发器的 ...

  10. 蓝牙BLE(协议栈、OSAL、蓝牙APP工具)

    目录 蓝牙配对和绑定 蓝牙4.0 BLE 信道(RF Channel) BLE协议栈分层 PHY层(Physical layer 物理层) LL层(Link Layer 链路层) HCI层(Host ...

最新文章

  1. How to check table locks
  2. 从基础末尾:CSS适用教程
  3. 部署在Netweaver上的Fiori应用的WebContent文件夹
  4. AOS V0.8 发布,JavaEE 应用基础平台
  5. Flutter根据偏移量转换角度 Offset 的使用实例
  6. 厉害了!《流浪地球》《疯狂的外星人》票房均破10亿元大关
  7. Maven学习总结(58)—— 常用的 Maven 镜像地址和中央仓库地址汇总
  8. linux中如何只拷贝文件夹下的文件,而不包括其子文件夹
  9. Metronome节拍器
  10. 【C#进阶3-4】C#设计模式
  11. holder 插件Android,Android神器级插件
  12. win2008 mysql 群集_win2003服务器下配置 MySQL 群集(Cluster)的方法 -电脑资料
  13. IE CSS样式的兼容性问题
  14. 九爷带你玩转 oracle
  15. 读书分享-《心智突围》上
  16. 基于现有电脑和手机,“掌上看家”帮你零投入远程照料家中儿童与老人
  17. 十几岁的娃娃,下手咋这么狠
  18. C#实现QQ扫码登录
  19. 【阅读】A Comprehensive Survey on Electronic Design Automation and Graph Neural Networks——EDA+GNN综述翻译
  20. matlab 蒙特卡洛法书籍,[转载]matlab的蒙特卡洛算法

热门文章

  1. PWM整流器仿真。 在simulink中搭建了PWM整流器,采用电压电流双闭环控制,实现了网侧电压与电流同相位
  2. 【目标检测】目标检测算法-从OverFeat到YOLO
  3. 北京中波(AM-MW)无线广播发射频率/频道表 (转载)
  4. 手机地图导航哪个好?手机导航地图推荐
  5. editormd 上传图片问题解决
  6. 软考每日一练||网络工程师
  7. GoogleEarth二次开发平台指南(4) --- 三维视频融合、视频拼接与摄像头控制
  8. python短时傅里叶变换_短时傅里叶变换(Short Time Fourier Transform)原理及 Python 实现...
  9. 数学分析教程(科大)——3.3笔记+习题
  10. 迈普光彩分享 几个细节教你搭建好LED显示屏舞台