自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pq的博客

记录一下学习的内容

  • 博客(213)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux FT260驱动内核学习笔记

系统采用Ubuntu 22,X86 64。

2024-05-12 20:00:00 786

原创 Ubuntu编译ftdi_sio

为了解决Ubuntu插入FTDI设备可能出现没有ttyUSB*设备的问题。这种错误有可能是因为模块是为不同版本的内核编译的,或者内核中缺失了模块所依赖的某些功能。

2024-05-11 20:30:00 208

原创 libftdi1学习笔记 8 - MPSSE SPI优化速度

如果不使用模拟的方式,则SCK,MOSI,MISO必须固定。通过这3个IO判断是哪种模式= 2)//GPIO模拟的方式else。

2024-04-20 20:00:00 137

原创 libftdi1学习笔记 7 - MPSSE I2C

I2C(主)采用2个或3个GPIO模拟的方式实现,如果sdao等于sdai相等,表示SDA是双向的,否则一个GPIO作为SDA输出,一个GPIO作为SDA输入。如果电平不想转换方向则选择3个GPIO的方式。注意,scl和sda必须在同一组内,比如scl在ACBUS0~7,那么sda也必须是这组内的,不能是ADBUS0~ADBUS7。freq表示I2C的频率,0表示最快速度,值越大越慢。一般I2C可以接多个从设备,所以这里只定义了2组I2C,如果需要更多,修改数组大小即可。

2024-04-19 20:00:00 934

原创 libftdi1学习笔记 6 - MPSSE QSPI

QSPI采用4根线为数据口,SCK和CS保留同样的功能,一般4个数据线采用MSB的方式发送数据,即高位在前。QSPI只能是半双工工作。

2024-04-18 20:00:00 269

原创 libftdi1学习笔记 5 - SPI Nor Flash

基于MPSSE SPI实现Nor Flash的读写。也定义两组flash。定义一个结构体记录flash的属性spiPort:表示该flash使用哪组SPIpCSEnable:对应CS脚控制的接口函数manufactor:该flash的生产商size:该flash的大小addrSize:该flash的地址宽度。

2024-04-17 20:00:00 582

原创 libftdi1学习笔记 4 - MPSSE SPI

与官方的方式不同,这里采用纯GPIO模式的方式实现SPI,这样可以定义任意GPIO为SPI,也可以实现QSPI。sck/mosi_io0/miso_io1/io2/io3分别对应SPI/QSPI的io,同样,所有io都必须属于同一组。注意,CS脚单独控制,用GPIO的方式控制。mode则表示spi的模式由于多个SPI从设备可以共用sck和数据口,只使用不同的cs即可。所以这里只定义2个spi设备。

2024-04-16 20:00:00 1466

原创 libftdi1学习笔记 3 - MPSSE GPIO

MPSSE,即Multi-Protocol Synchronous Serial Engine,是FTDI公司推出的一种多协议同步串行引擎,目前仅FT232H、FT2232H、FT4232H(A)支持。FT232H支持1路MPSSE,GPIO口是ADBUS0-ADBUS7、ACBUS0-ACBUS7,一共16个GPIO(注意ACBUS8,ACBUS9不可控)。

2024-04-15 20:00:00 902

原创 libftdi1学习笔记 2 - 串口

打开ftdi USB设备后就可以配置串口参数并进行通信。FTDI设备默认是串口的模式。

2024-04-14 20:00:00 426

原创 libftdi1学习笔记 1 - 打开/关闭设备

libftdi1是一个升级版本的库(旧的版本是libftdi),用于与FTDI芯片进行通信。在Ubuntu系统中可以先安装好ibftdi1库。其他系统可以下载源代码编译安装。下载一个通用makefile。新建一个libftdi1-example的文件夹,然后在该文件夹内创建上面的makefile和main.c。下载libftdi1的源代码,找到ftdi.h文件,拷贝到当前文件夹。编辑main.c运行make编译,此时应该可以编译通过。

2024-04-13 20:00:00 1609

原创 Android下使用OpenOCD

主要是使用NDK编译OpenOCD源码。最好先在Ubuntu中编译通过OpenOCD。

2024-03-10 20:00:00 680

原创 Ubuntu下使用DAPLink(OpenOCD)

通过OpenOCD实现,在Ubuntu18 64bit下验证。

2024-03-09 20:00:00 2035

原创 如何在Windows环境下编译OpenOCD

Windows环境下编译OpenOCD可以是在MinGW-w64/MSYS或Cygwin下,这里选择Cygwin,下载安装Cygwin。

2024-03-08 20:00:00 890

原创 libftdi库编译

分2部分,先在Ubuntu中编译,然后在Android NDK中编译。

2024-03-07 20:00:00 804

原创 LVGL学习笔记 30 - List(列表)

列表是一个垂直布局的矩形,可以向其中添加按钮和文本。部件包含:LV_PART_MAIN - 主要的属性,大部分是这个部件。LV_PART_SCROLLBAR - 滚动条的属性。

2023-08-14 19:42:12 3782

原创 LVGL学习笔记 29 - LED

功能类似CheckBox,用一个方形或则圆形的控件显示开关状态。LED只有一个样式: LV_PART_MAIN。

2023-08-12 10:50:11 540

原创 LVGL学习笔记 28 - 键盘keyboard

键盘是一个特殊的按键矩阵,自身实现了按键(map)映射和其他功能。键盘默认是铺满当前页面的,可以通过lv_obj_set_size设置大小。

2023-08-11 21:33:50 4943 1

原创 LVGL学习笔记 27 - 图片按键imgbtn

RELEASED是基本的状态,如果其他状态没有设置,其他状态会直接使用RELEASED的图片,所以RELEASED必须设置。可以通过lv_imgbtn_set_state手动改变按键的状态。注意设置的高度最好等于图片的高度,上图中图片是80的高度,设置116并不会让图片在高度上拉伸,如果设置小于实际高度,图片会被截断。按键的左边和右边不变,而中间部分可以重复绘制,从而显示任意长度的按键。图片按键和按键类似,区别在于背景是图片。还需要通过lv_imgbtn_set_src设置图片。

2023-04-06 21:00:00 3364 1

原创 LVGL学习笔记 26 - 色环ColorWheel

色环允许用户选择一种颜色。颜色的色调、饱和度和值可以分别选择。长按对象,色环将更改为颜色的下一个参数(色调、饱和度或值)。双击将重置当前参数。参数knob_recolor表示是否将旋钮的颜色设置为当前颜色。false和true区别参考下图。

2023-04-05 21:00:00 1495

原创 LVGL学习笔记 25 - 图表Chart

图表通过lv_chart_create创建。四个边分别对应主X轴,主Y轴,副X轴,副Y轴。

2023-04-04 21:00:00 8807 24

原创 LVGL学习笔记 24 - 日历Calendar

通过lv_calendar_create创建。

2023-04-03 21:00:00 1380

原创 LVGL学习笔记 23 - 动画Animimg

动画就是对一组图像数组以固定的时间间隔显示。

2023-04-02 22:45:00 1573 5

原创 LVGL学习笔记 22 - 画布Canvas

Canvas 继承自Image,用户可以在其中绘制任何内容。由lv_canvas_create创建。画布需要先分配足够空间的缓冲区来存储绘制的图像buffer必须是一个静态缓冲区,大小是(lv_img_cf_get_px_size(cf) * w) / 8 * h),可以通过lv_mem_alloc()分配或静态数组或RAM(SRAM)的地址。w,h是画布的长宽cf是画布的图像格式此时由于buffer中的数据是全0,显示出来的就是黑色方块。所以,对画布的操作其实是对buffer的处理。

2023-03-15 20:00:00 5309

原创 LVGL学习笔记 21 - 图像Image

图像是显示来自闪存(作为数组)或来自文件的图像的基本对象。

2023-03-14 20:00:00 4458 3

原创 LVGL学习笔记 20 - 滚轮Roller

滚轮Roller实现的功能类似下拉列表,由lv_roller_create创建。

2023-03-13 20:00:00 2230

原创 LVGL学习笔记19 - 下拉列表dropdown

下拉列表由lv_dropdown_create创建。

2023-03-12 20:00:00 4389 8

原创 LVGL学习笔记18 - 表Table

表格是由包含文本的行、列和单元格构建的。它不是真实的对象,只是临时绘制的。表格通过lv_table_create创建。

2023-03-11 20:17:42 4593 2

原创 LVGL学习笔记17 - 开关Switch

开关看起来像一个小滑块,功能类似于按钮,通过lv_switch_create创建对应的对象。

2023-01-13 21:00:00 2534 2

原创 LVGL学习笔记16 - 进度条Bar

进度条有一个背景和一个指示器组成,通过lv_bar_create创建对象。进度条默认的范围是 0..100。

2023-01-11 21:00:00 3182

原创 LVGL学习笔记15 - 文本框TextArea

文本框由一个Label和一个光标组合而成,用于文本输入。通过lv_textarea_create创建对象。

2023-01-10 21:00:00 4443 4

原创 LVGL学习笔记14 - 线Line

通过一组点绘制出相连的直线,通过lv_line_create创建相应的对象。线只有LV_PART_MAIN一个部件。

2023-01-05 21:00:00 3410

原创 LVGL学习笔记13 - 圆弧Arc

圆弧由背景和前景弧组成,通过lv_arc_create创建。

2023-01-04 21:00:00 3826

原创 LVGL学习笔记12 - 复选框CheckBox

复选框通过lv_checkbox_create创建。一个CheckBox由一个点击框加一个Label组成。注意,CheckBox的size可以不用设置,会自动匹配字符串长度。字符串可以通过lv_checkbox_set_text和lv_checkbox_set_text_static更改。

2023-01-03 21:00:00 1662

原创 LVGL学习笔记11 - 按钮矩阵Button Matrix

按钮矩阵是多个按钮的组合,例如直接绘制一个九宫格按键。按钮矩阵的按钮是实时绘制的,所以占用的内存会比较小。通过lv_btnmatrix_create函数创建按钮矩阵对象。

2023-01-02 21:00:00 5530 3

原创 LVGL学习笔记10 - 按钮Button

按钮有点类似矩形框,更多的是具有事件属性。通过lv_btn_create创建。按钮的Parts只有LV_PART_MAIN。

2023-01-01 21:00:00 8425 4

原创 LVGL学习笔记9 - 标签Label

显示字符串是通过对象Label实现的。Label的Parts只有LV_LABEL_PART_MAIN。标签通过lv_label_create创建。

2022-12-31 21:00:00 5421 1

原创 LVGL学习笔记8 - 字体

字体是位图和呈现字母(字形)图像所需的其他信息的集合。LVGL的字库信息保存在lv_font_t的变量中。LVGL默认使用ASCII范围(包含所有ASCII字符,度数符号(U + 00B0),项目符号(U + 2022)和内置图标)的一组字体,在lv_conf.h中有相关的宏定义可以使能相应大小的字体,默认使用LV_FONT_MONTSERRAT_14,这里的14指的是字体大小。数字越大,字体的像素越大,占用的空间越大。

2022-12-30 21:00:00 6606 3

原创 LVGL学习笔记7 - GD32平台优化

学习过程中发现GD32平台的显示效果不佳,而且会出现死机的问题,需要优化一下平台代码。

2022-12-29 21:00:00 1905

原创 LVGL学习笔记6 - 输入设备

输入设备的回调函数需要用户根据硬件自己实现,例如上例中的lv_win32_pointer_driver_read_callback、lv_win32_keypad_driver_read_callback和lv_win32_encoder_driver_read_callback。通过lv_obj_add_event_cb给对象添加事件处理程序函数。filter - 事件代码,例如LV_EVENT_CLICKED表示点击事件,具体可以看lv_event.h中的枚举lv_event_code_t。

2022-12-28 21:00:00 5717

原创 LVGL学习笔记5 - Display, Screen和Layer

目录1. Display2. Screen2.1 创建Screen2.2 加载Screen2.3 获取活动的Screen2.4 实例2.4.1 定义2个Screen全局变量2.4.2 初始化Screen2.4.3 循环更替3. Layer图层3.1 切换顺序3.2 顶层和系统层3.3 实例3.3.1 创建全局变量3.3.2 初始化3.3.3 循环更替处理在移植那里会有一个显示接口的移植,这部分其实对应的就是Display,可以翻译为显示器。在LVGL中,可以有多个Display,即物理上支持多个显示器。

2022-12-27 21:00:00 3234

FT4222H.zip

测试FT4222H的各项功能(SPI Master,SPI Slave, I2C Master, I2C Slave, GPIO),在Windows中运行

2019-11-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除