- snowinwind
-
5 发帖0 回复125 积分
- 私信他 + 关注
类别 |
内容 |
平台移植 |
将EFD0287B09移植到STM32F10x |
1. 产品概述
1.1 技术说明
EFD(Energy Friendly Display)是一种阳光下可读的显示器,既有极高的显示效率功能和低功耗的特点,由于非易失性存储器功能技术,零功率就可以保存显示器的图像。电源只是更改显示的图像。不需要背光,只需要环境光从周围的照明就可以,或者在暗黑条件下,增加前光,在阳光直射的可读性非常好,而且对比度很高,可以在很宽的角度下观看。
1.2典型的应用
此模块用于通用图形和字符显示应用程序。建议的用途包括仪器仪表、遥控器、电子产品或价格标签,销售点展示,室内或室外标牌和信息显示。
1.3一般说明
•无源矩阵存储器显示,正,反显模式图形模块
•模式:双稳态
•颜色:黑色和绿色
•显示分辨率:240 x 96点
•接口:4线串口液晶控制器/驱动
•观察角度:所有角度(倾角<70°,CR > 3)
•DPI: 90 DPI
•逻辑电压:+3.0 V
•FPC连接
1.4机械规格
机械细节显示如图1所示,总结如下表1所示。
表 1
Table 1
Parameter
Specifications
Unit
Outline dimensions
80.6(W) x 39.0(H) x 1.4(D)
mm
Viewing area
69.6(W) x 35.0 (H)
mm
Active area
66.95(W) x 29.078(H)
mm
Display format
240(Horizontal) x 96(Vertical)
dots
Dot size
0.269(W) x 0.293(H)
mm
Dot spacing
0.01(W) x 0.01(H)
mm
Dot pitch for characters
0.279(W) x 0.303(H)
mm
Operation Temperature
From -20 to 70
℃
Storage Temperature
From -30 to 80
℃
Weight
TBD
gram
图1:模块规范
图2:框图
1.5 接口信号
表2
Pin No.
说明
1
ESD_GND
ESD.
2
VCI
This pin is the system power supply pin of the logic block.
3
VDD
This is the VDD regulator output pin.(NC).
4
VSS
Ground.
5
IDLE
When this pin is at low level, the driver IC will enter Sleep mode. RAM
6
ACK
This is an output pin indicating the status of the chip in the following way.
7
RESET
This pin is the reset signal input. Initialization of the chip is started once this
8
CSB
These pins are the chip select inputs for communication between MCU.
9
SCLK
SPI clock signal.
10
SO
SPI data output from IC.
11
SI
SPI data input to IC.
12
ESD_GND
ESD
符号
content and register will be retained in this mode. When this pin is at high
level, the driver IC will resume to IDLE mode.
pin is pulled low. Minimum pulse width for reset sequence is 20us.
To select the chip CS# must be low.
2.EFD0287B09包含主要文件说明
2.1demo_data.h
该文件是demo_data.c的头文件,在目录inc下。
2.2EFD0287B09_SPI.h
该文件是EFD0287B09_SPI.1ib的头文件,在目录inc下。该文件包含EFD产品EFD0287B09屏幕驱动刷新函数。
2.3demo_data.c
demo_data,c是数据文件,在目录src下,存放显示画面信息数据。数据生成取模的方式是:
取模方式:逐行式
取模走向:顺位(高位在前)
2.4 main.c
main.c是主函数文件,目录在SRC下。
3.EFD0287B09移植操作
3.1新建文件我们要新建STM32F10x的工程,首先新建文件夹并起名EFD320287B11-STM32f103x
然后在EFD320287B11-STM32f103x文件下新建个文件夹命名为Listing,0bjects
将文件中的Libraries和User拷贝在EFD320287B11-STM32f103x文件夹下。
Libraries下的CMSIS文件适用于存放内核函数及启动引导文件。
Libraries下的FWLIB适用于存放内核函数及启动引导文件。
User是存放用户自己的函数。
Listing和0bjects是用于存放输出文件的。
3.2开keil新建工程并移植文件
保存到刚刚新建的EFD320287B11-STM32f103x文件夹下并起名字EFD0287B09。
点击保存后选择自己芯片。
依次添加并修改工程栏中的名字为STARTUP,CMSIS,FWLIB,USER。
在keil5工程栏中双击STARTUP文件,打开Libraries->CMSIS->startup,文件类型选择All feiles(*.*),添加startup_stm32f10x_hd.s文件。
在keil5工程栏中双击CMSIS文件,打开Libraries->CMSIS,文件类型选择All feiles(*.*),添加core_cm3.c,system_stm32f10x.c文件。
在keil5工程栏中双击CMSIS文件,打开Libraries->FWLIB->src下,添加所有.c文件。
在keil5工程栏中双击USER文件,打开User添加main.c文件和User->src下的所有.c文件。
点击属性,在Defile中添加STM32F10X_HD, USE_STDPERIPH_DRIVER。
在Include Path中添加对应的路径。
我们所使用的是C99,所以在Misc Controls中添加—c99。
4.函数的
我们在函数中主要采用的是回调函数,这样可以更加方便程序移植到不同的平台。只需要修改驱动函数,即可使工程移植,正常运行。
4.1在main.c:
efdIFSet()、efdIFClear ()、efdIFGet()、efdDelay()这4个函数分别是用于设置GPIO的高、低、获取和延时的函数,它里面的函数是开发板中自带的GPIO的设置函数。
4. 2在EFD0287B09_SPI.h:
模块接口结构的定义。
模块操作结构的定义,这里的端口是指针类型 。
模块引脚操作回调结构的回调函数定义。
5. 修改函数及验证
5.1修改GPIO
每一个平台初始化GPIO是不一样的,所以先要知道自己平台如何初始化GPIO,需要通过阅读所使用平台的入门手册,来确定如何初始化GPIO。注意,我们在EFD0287B09_SPI.lib文件中定义的port都是指针类型的,如果该平台的port的定义不是指针类型的,要将初始 化的port转化为指针类型的。
首先我们需要修改GPIO的初始化,我们GPIO的初始化定义是在main.c文件中定义的。
定义port:输出的端口定义为GPIOB,在STM32F103x原函数中可以看到GPIOB的定义,他是(GPIO_TypeDef *)指针类型的,所以需要叫我们的port强转化。如图GPIOB定义修改。
原函数GPIO的定义:
修改前:
修改后:
当我们port定义好后,就是确定pin和使能。
修改前:
修改后:
5.2设置回调函数GPIO的输出和输入
我们将GPIO的输出和输入写成回调函数的形式,只需要修改main.c中的定义的不同平台的函数,就避免了每次使用,都要去修改他的函数,更加方便了移植。
修改前:
修改后:
5.3验证
在以上步骤全部完成后,我们需要修改的部分就已经结束了,接下来就是最后一步了,验证我们的修改是否正确,首先通过软件的编译来确定函数是否还有错误,如果有错误,根据错误提示进行修改,当没语法错误会有如下提示。
当确定没有语法错误后,根据代码中的引脚的定义连接好线路,就可以看到显示屏的刷新,如果没有正常刷新,检查我们GPIO定义是否正确,引脚的输出和清除是否正常。
开发板与产品连接:
- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 +关注
块
导
航
举报
请选择举报类别
- 广告垃圾
- 违规内容
- 恶意灌水
- 重复发帖