- 博客(213)
- 资源 (1)
- 收藏
- 关注
原创 Ubuntu编译ftdi_sio
为了解决Ubuntu插入FTDI设备可能出现没有ttyUSB*设备的问题。这种错误有可能是因为模块是为不同版本的内核编译的,或者内核中缺失了模块所依赖的某些功能。
2024-05-11 20:30:00 212
原创 libftdi1学习笔记 8 - MPSSE SPI优化速度
如果不使用模拟的方式,则SCK,MOSI,MISO必须固定。通过这3个IO判断是哪种模式= 2)//GPIO模拟的方式else。
2024-04-20 20:00:00 138
原创 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 935
原创 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 905
原创 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 1611
原创 如何在Windows环境下编译OpenOCD
Windows环境下编译OpenOCD可以是在MinGW-w64/MSYS或Cygwin下,这里选择Cygwin,下载安装Cygwin。
2024-03-08 20:00:00 892
原创 LVGL学习笔记 30 - List(列表)
列表是一个垂直布局的矩形,可以向其中添加按钮和文本。部件包含:LV_PART_MAIN - 主要的属性,大部分是这个部件。LV_PART_SCROLLBAR - 滚动条的属性。
2023-08-14 19:42:12 3807
原创 LVGL学习笔记 29 - LED
功能类似CheckBox,用一个方形或则圆形的控件显示开关状态。LED只有一个样式: LV_PART_MAIN。
2023-08-12 10:50:11 544
原创 LVGL学习笔记 28 - 键盘keyboard
键盘是一个特殊的按键矩阵,自身实现了按键(map)映射和其他功能。键盘默认是铺满当前页面的,可以通过lv_obj_set_size设置大小。
2023-08-11 21:33:50 4957 1
原创 LVGL学习笔记 27 - 图片按键imgbtn
RELEASED是基本的状态,如果其他状态没有设置,其他状态会直接使用RELEASED的图片,所以RELEASED必须设置。可以通过lv_imgbtn_set_state手动改变按键的状态。注意设置的高度最好等于图片的高度,上图中图片是80的高度,设置116并不会让图片在高度上拉伸,如果设置小于实际高度,图片会被截断。按键的左边和右边不变,而中间部分可以重复绘制,从而显示任意长度的按键。图片按键和按键类似,区别在于背景是图片。还需要通过lv_imgbtn_set_src设置图片。
2023-04-06 21:00:00 3374 1
原创 LVGL学习笔记 26 - 色环ColorWheel
色环允许用户选择一种颜色。颜色的色调、饱和度和值可以分别选择。长按对象,色环将更改为颜色的下一个参数(色调、饱和度或值)。双击将重置当前参数。参数knob_recolor表示是否将旋钮的颜色设置为当前颜色。false和true区别参考下图。
2023-04-05 21:00:00 1497
原创 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 5316
原创 LVGL学习笔记18 - 表Table
表格是由包含文本的行、列和单元格构建的。它不是真实的对象,只是临时绘制的。表格通过lv_table_create创建。
2023-03-11 20:17:42 4603 2
原创 LVGL学习笔记16 - 进度条Bar
进度条有一个背景和一个指示器组成,通过lv_bar_create创建对象。进度条默认的范围是 0..100。
2023-01-11 21:00:00 3189
原创 LVGL学习笔记15 - 文本框TextArea
文本框由一个Label和一个光标组合而成,用于文本输入。通过lv_textarea_create创建对象。
2023-01-10 21:00:00 4453 4
原创 LVGL学习笔记14 - 线Line
通过一组点绘制出相连的直线,通过lv_line_create创建相应的对象。线只有LV_PART_MAIN一个部件。
2023-01-05 21:00:00 3412
原创 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 1664
原创 LVGL学习笔记11 - 按钮矩阵Button Matrix
按钮矩阵是多个按钮的组合,例如直接绘制一个九宫格按键。按钮矩阵的按钮是实时绘制的,所以占用的内存会比较小。通过lv_btnmatrix_create函数创建按钮矩阵对象。
2023-01-02 21:00:00 5543 3
原创 LVGL学习笔记10 - 按钮Button
按钮有点类似矩形框,更多的是具有事件属性。通过lv_btn_create创建。按钮的Parts只有LV_PART_MAIN。
2023-01-01 21:00:00 8437 4
原创 LVGL学习笔记9 - 标签Label
显示字符串是通过对象Label实现的。Label的Parts只有LV_LABEL_PART_MAIN。标签通过lv_label_create创建。
2022-12-31 21:00:00 5430 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 6616 3
原创 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 5727
原创 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 3243
FT4222H.zip
2019-11-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人