学习目标:

掌握正点原子潘多拉板载LCD的用法,熟悉IIC和SPI的用法及其区别


学习内容:

1.LCD屏幕 潘多拉开发板板载LCD屏幕大小1.3寸,分辨率240*240,色彩深度16bit,使用ST7789V2液晶控制器,小巧细腻很喜欢。

潘多拉开发板板载的lcd硬件原理图如上所示,因为显示问题,所以只是写操作 ,不用读取。因而用到的引脚为:

屏幕美照

2.学会使用st7789驱动,芯片手册臭又长,网上有好多可以借鉴的例子。

这里定义了控制引脚的高低电平控制

#define LCD_PWR(n)      (n?\HAL_GPIO_WritePin(LCD_PWR_GPIO_Port,LCD_PWR_Pin,GPIO_PIN_SET):\HAL_GPIO_WritePin(LCD_PWR_GPIO_Port,LCD_PWR_Pin,GPIO_PIN_RESET))
#define LCD_WR_RS(n)    (n?\HAL_GPIO_WritePin(LCD_WR_RS_GPIO_Port,LCD_WR_RS_Pin,GPIO_PIN_SET):\HAL_GPIO_WritePin(LCD_WR_RS_GPIO_Port,LCD_WR_RS_Pin,GPIO_PIN_RESET))
#define LCD_RST(n)      (n?\HAL_GPIO_WritePin(LCD_RST_GPIO_Port,LCD_RST_Pin,GPIO_PIN_SET):\HAL_GPIO_WritePin(LCD_RST_GPIO_Port,LCD_RST_Pin,GPIO_PIN_RESET)

当然根据手册关键字,要有如下的宏定义:

//LCD屏幕分辨率定义
#define LCD_Width   240
#define LCD_Height  240
//颜色定义
#define WHITE   0xFFFF  //白色
#define YELLOW  0xFFE0  //黄色
#define BRRED   0XFC07  //棕红色
#define PINK    0XF81F  //粉色
#define RED     0xF800  //红色
#define BROWN   0XBC40  //棕色
#define GRAY    0X8430  //灰色
#define GBLUE   0X07FF  //兰色
#define GREEN   0x07E0  //绿色
#define BLUE    0x001F  //蓝色
#define BLACK   0x0000  //黑色

3.在程序编写时采用的RT-thread stdiuo 平台,在配置中使能spi硬件后,在config.h中 打开define SPI MODE ENABLE的注释,在board.c中添加宏定义#define BSP_USING_SPI3,这样在RT-thread为你配置好的很多预定义函数才会生效。最后不要忘了在board.c中添加关于用到的spi硬件引脚初始化(用cube生成void HAL_SPI_MspInit()后复制到board.c即可)

好,让我们复习一下spi吧!!!!!!!!!!!!!!!!!

SPI(串行外围接口,串行外设接口)是一种高速,全双工,同步通信总线,常用于短距离通讯,主要用于EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理SPI一般使用4根线通信,

  • MOSI –主机输出/从机输入数据线(SPI总线主输出/从输入)。

  • MISO –主机输入/从机输出数据线(SPI总线主输入/从输出)。

  • SCLK –串行时钟线(Serial Clock),主设备输出时钟信号至从设备。

  • CS –从设备选择线(芯片选择)。也叫SS,CSB,CSN,EN等,主设备输出片选信号至从设备SPI以主从方式工作,通常有一个主设备和一个或多个从设备。通信由主设备发起,主设备通过CS选择要通信的从设备,然后通过SCLK给从设备提供时钟信号,数据通过MOSI输出给从设备,同时通过MISO接收从设备发送的数据

在rt-thread中常用的spi相关API:

rt_err_t rt_spi_bus_attach_device(struct rt_spi_device *device, const char *name, const char *bus_name, void *user_data)

设备注册API,

设备 SPI设备句柄
名称 SPI设备名称
bus_name SPI总线名称
用户数据 用户数据指针

例子:rt_hw_spi_device_attach("spi3", "spi30", GPIOD, GPIO_PIN_7);对应函数

rt_hw_spi_device_attach(const char *bus_name, const char *device_name, GPIO_TypeDef *cs_gpiox, uint16_t cs_gpio_pin)

{前面代码省略

rt_spi_bus_attach_device(spi_device, device_name, bus_name, (void *)cs_pin);

}

配置spi设备:

rt_err_t rt_spi_configure(struct rt_spi_device *device, struct rt_spi_configuration *cfg)

struct rt_spi_configuration
{
    rt_uint8_t mode;
    rt_uint8_t data_width;
    rt_uint16_t reserved;

rt_uint32_t max_hz;
};

发现spi设备,并确认注册:

static int rt_hw_lcd_config(void)
{
    spi_dev_lcd = (struct rt_spi_device *)rt_device_find("spi30");

/* config spi */
    {
        struct rt_spi_configuration cfg;
        cfg.data_width = 8;
        cfg.mode = RT_SPI_MASTER | RT_SPI_MODE_0 | RT_SPI_MSB;
        cfg.max_hz = 42 * 1000 * 1000; /* 42M,SPI max 42MHz,lcd 4-wire spi */

rt_spi_configure(spi_dev_lcd, &cfg);
    }

return RT_EOK;
}

潘多拉 rt thread lcd相关推荐

  1. 一个工程师对潘多拉开发板的使用体验

    这块开发板刚上市的时候就买了,见图片. 先看看它上面的资源: 硬件看起来挺牛的是吧! 下面看看其提供的教程,即软件资源. 裸机例程代码 : RT thread代码例程: 大家可以看到,这块板子上绝大多 ...

  2. 潘多拉开发板——emwin5.44裸机移植记录(ST7789驱动)

    一.emwim5.44的获取 1.打开STM32CubeMX,通过主界面help-Update Setting查看 点击后在弹出的界面可以看到路径,以我的电脑为例,可以找到以下的文件夹 正点原子的潘多 ...

  3. Yeelink平台使用——远程控制 RT Thread + LwIP+ STM32

    1.前言     [2014年4月重写该博文]     经过若干时间的努力终于搞定了STM32+LwIP和yeelink平台的数据互通,在学习的过程中大部分时间花在以太网协议栈学习上,但是在RT Th ...

  4. 基于RT-Thread IoT STM32潘多拉开发板的Badapple显示。

    万物皆可Badapple,坏苹果这个黑白影绘PV由于只有黑白两色,而且画面富有动感,很受各路电子大神的喜爱.它在STM32上的显示早就烂大街了,我做的也就是一点简单的整合还有移植. 目录 所用软硬件 ...

  5. xpt 2046的触摸屏 rt thread设备驱动框架

    1 基于rtt 开发触摸屏驱动 准备使用rtt 框架 , 驱动xpt 2046的触摸屏, 翻阅大量资料发现, 大部分文章强调的是时序图, 而且很多代码要么直接操作寄存器, 要么是io 口模拟, 只能用 ...

  6. 如何使用潘多拉连接千寻开发板开发高精度应用

    所需设备: 潘多拉开发板 (淘宝链接) 注意:购买时请注意屏幕背面上方的版本号,我购买的是V2.61版本,其他版本的串口布局不一样,在代码编写时需要注意,我会在代码一节详细标书. 千寻魔方110M开发 ...

  7. 微软获 OpenAI 独家 GPT-3 模型授权,是潘多拉还是聚宝盆?

    作者 | 八宝粥 出品 | 程序人生(ID:coder_life) 9 月 20 日,微软宣布与 OpenAI 达成合作协议,得到了目前最火的 GPT-3 语言模型的独家授权,微软 CTO Kevin ...

  8. 斐讯k1潘多拉专版固件_斐讯K1刷专版潘多拉固件以及教程(使用感受)

    本帖最后由 Super131 于 2016-3-5 10:09 编辑 QQ图片20160225010211.png (24.22 KB, 下载次数: 2) 2016-2-25 01:02 上传 K1的 ...

  9. 潘多拉_最新Pandora潘多拉美国官网海淘攻略

    潘多拉相信没有女生是不喜欢的,Pandora的串珠和首饰一直是少女心的存在,BlingBling闪亮亮充满着幻想的气息.Pandora总是有一种蜜汁魔力,每次看见打折的款式总是忍不住要剁手!买回来和之 ...

最新文章

  1. 一个LabVIEW控件,生成模拟波形效果
  2. 《数学之美》第11章 如何确定网页和查询的相关性
  3. 第十五届全国大学生智能汽车竞赛-室外光电ROS组预赛方案
  4. oracle rownum分页 出现重复数据
  5. python学习音频-Python学习笔记--音频处理
  6. linux如何取文件列名,Linux_根据表名和索引获取需要的列名的存储过程,复制代码 代码如下: create proc p - phpStudy...
  7. 《炉石传说》架构设计赏析(4):Asset管理
  8. -XX:+UseParallelGC与 -XX:+UseParNewGC相关介绍
  9. 李开复 —— 给中国学生的第四封信:大学四年应是这样度过
  10. Java虚拟机学习总结(4)—— JVM 性能调优常用参数详解
  11. R语言页游渠道分析(转)
  12. 计算机驱动程序的安装过程,电脑常用的驱动程序的安装与管理
  13. 【VOIP】 yate源码编译和部署
  14. 计算机软件实习每日学习打卡(1)20201130
  15. 1.MySQL增删改查(初阶)
  16. 案例解读 | 重视管理会计,让永辉超市从生鲜市场破局
  17. 容联云 实现验证码发送
  18. PP体育APP产品体验报告
  19. 建设网站对服务器配置的要求标准?
  20. 打开MyMPC的双字幕显示模式

热门文章

  1. 深度强化学习(DRL)专栏(一)
  2. 微信小程序优化多次跳转后卡顿问题
  3. AP:发票匹配采购PO
  4. python linux apt,Linux Mint 19上的Python3.7“No module named apt_pkg”错误
  5. 第11回 我猜小曹不会用Broadcast
  6. 两大权威机构点赞百度AI,“技术为王”时代的中国旗帜
  7. ai自动配音_AI全自动剪辑视频软件4.3版,新增双语字幕条人工配音功能!
  8. 关于Facebook Web端第三方登录
  9. 浅入浅出Oracle Spatial GeoRaster 10g影像数据管理(2)
  10. 从纪念碑谷的收益看小而美的游戏的盈利困境