一板网电子技术论坛

天南地北客
发表于: 2018-9-29 11:25:11 | 显示全部楼层

NUCLEO-8S208RB(基于STM8S208RBT6)和NUCLEO-8L152R8(基于STM8L152R8T6)开发板可用于评估所有STM8S系列和STM8L系列微控制器的主要特性。


本应用笔记简要介绍了如何将Adafruit 1.8”TFT shield与STM8 Nucleo-64开发板配合使用。


一旦微控制器(本例中为STM8S208RBT6或STM8L152R8T6)通过连接到主机PC的USB电缆上电,就可以检查Adafruit 1.8“TFT的可用性。 检查后,将显示一个菜单,使用操纵杆选择图像滚动模式(手动或自动)。 这样,保存在microSD卡根目录中的所有.bmp图像都以所需模式显示。


1    演示入门

1.1    硬件要求

启动演示应用程序需要的硬件:

•    STM8 Nucleo-64开发板(NUCLEO-8S208RB或NUCLEO-8L152R8)

•    Adafruit 1.8“TFT Shield,带操纵杆和micro SD(参考编号:802)

•    一根USB A转Micro-B电缆,通过USB ST-LINK(USB连接器CN6)为开发板供电

•    标准容量SD卡(SDSC),容量高达32 GB。


1.1.1     STM8 Nucleo-64开发板

STM8 Nucleo-64板是一种低成本且易于使用的开发套件,有助于快速评估和入门使用STM8S系列和STM8L系列微控制器一些开发。

在安装和使用产品之前,请接受www.st.com/epla上提供的评估产品许可协议。

有关STM8 Nucleo-64开发板的更多信息,请访问www.st.com/stm8nucleo

图1.   NUCLEO-8S208RB开发板

图1.   NUCLEO-8S208RB开发板.jpg

图2.   NUCLEO-8L152R8开发板

图2.   NUCLEO-8L152R8开发板.jpg


1.1.2   Adafruit TFT shield

STM8 Nucleo-64开发板支持Arduino连接。

这款Adafruit 1.8“TFT shield可在Adafruit网站(参考ID 802)上找到,具有以下功能:

•  一个1.8英寸TFT显示屏,128x160色像素

•  一个microSD卡接口插槽

•  一个5向操纵杆导航开关(左、右、上、下、选择)。

图3  Adafruit 1.8 TFT sheild

图3 Adafruit 1.8 TFT sheild.jpg


1.2    硬件配置

除了收集所需的硬件之外,在开始使用Adafruit 1.8“TFT shield与STM8 Nucleo-64开发板之前必须遵循一些建议。本节介绍了推荐的开发板配置以及如何组装Adafruit shield。


1.2.1  STM8 Nucleo-64开发板配置

对于NUCLEO-8S208RB开发板,检查跳线的位置如下:

•   JP1 OFF

•   JP2(PWR) 位于(1-2)

•   JP3(IDD)位于(1-2)或(2-3)

对于NUCLEO-8L152R8板,检查跳线的位置如下:

•   JP1 OFF

•   JP2(PWR) 位于(1-2)

•   JP3(IDD)位于ON。


1.2.2    组装Adafruit shield

Adafruit TFT shield配有所有表面贴装零件。用户可以按照以下步骤安装插头:

1.  将分离式插头条切割成多个部分。为了适应Shield的孔,需要两个6个引脚和两个8个引脚的部分。

2.  要对齐插头进行焊接,请将它们(长引脚向下)插入STM8 Nucleo-64开发板的接头中,分别标识为连接器CN5、CN6、CN8和CN9。

3.  将Shiled放在插头上,使短针穿过孔。

4.  将插头的每个引脚焊接到shield的PCB上,以确保良好的电气接触。

步骤如下图所示:

图4.  组装Adafruit 1.8 TFT shield

图4.  组装Adafruit 1.8 TFT shield.jpg


2    示例固件包

2.1    示例存储库

示例源码位于STM8S和STM8L开发板固件包的projects文件夹中。源码分为四组,描述如下:

•    Media:包含BMP_128x160图像文件

•    Inc:包含示例头文件

•    Src:包含示例源文件

•    项目设置:包含项目设置的每个工具链的文件夹。


2.2   Nucleo开发板驱动程序

对于每个开发板,stm8s_nucleo.c / .h文件(NUCLEO-8S208RB开发板)和stm8l_nucleo.c / .h文件(NUCLEO-8L152R8开发板)中都有一组按钮、LED和操纵杆驱动程序,实现板卡功能和总线链接机制。


2.2.1    操纵杆

shield上的5向操纵杆基于电阻技巧,允许所有开关共用一个模拟引脚。操纵杆控制器的每次移动都连接不同的电阻器,从而产生不同的电压读数。

ADC外设分别在stm8s_nucleo.c / .h驱动程序或stm8l_nucleo.c / .h驱动程序中配置,通过模拟I / O引脚3获得模拟电压值。

BSP_JOY_GetState()函数读取模拟引脚并将结果与​​五个不同的范围进行比较以确定摇杆移动的方向(左、右、上、下、选择)。


2.2.2    LCD

Adafruit 1.8 TFT shield上的LCD使用4线SPI与STM8S系列或STM8L系列器件(数字I / O引脚13、11、10和8)并具有自己的像素可寻址帧缓冲器来显示文字、形状、线条、像素等。

SPI外设在stm8s_nucleo.c / .h驱动程序或stm8l_nucleo.c / .h驱动程序中分别为每个板配置。每个驱动程序还包含SPI总线链接机制和IO操作。

LCD由专用BSP LCD驱动程序stm8_adafruit_lcd.c / .h控制,以通用方式导出其过程所需的LCD IO操作。


2.2.3   MicroSD

Adafruit 1.8 TFT shield上的microSD插槽使用4线SPI与STM8S系列或STM8L系列芯片(数字I / O引脚13、12、11和4)通信。

SPI外设分别在stm8s_nucleo.c / .h驱动程序或stm8l_nucleo.c / .h驱动程序中配置。该驱动程序还包含SPI总线链接机制和IO操作。

microSD由专用的BSP SD驱动程序stm8_adafruit_usd.c / .h控制,该驱动程序以通用方式导出过程所需的SD IO操作。

跳转到指定楼层
天南地北客
发表于: 2018-9-29 17:04:24 | 显示全部楼层

3    示例功能描述

本示例显示如何使用STM8S / L系列固件包与STM8 Nucelo-64开发板以及Adafruit 1.8英寸TFT shield,从使用FatFS文件系统的一个micro SD卡中显示一张128x160像素全彩色位图图片。

示例开始时,用户需要将FW软件包的“\ Media”文件夹提供的128x160像素位图图片,复制到FAT格式的microSD卡的根目录,然后插入micrSD卡到Adafruit shield电路板的microSD卡槽。

请注意,microSD卡可以支持最高4 GB的存储容量(SDSC)和位图图像必须具有下表中详述的属性。

表2.  位图图像属性

尺寸
128 x 160
宽度
128像素
高度
160像素
位深度
16
项目类型
BMP文件
名称
不得超过11个字符(包括bmp扩展名)

一旦启动,该应用程序将检查STM8 Nucleo-64开发板的Adafruit 1.8 TFT shield的可用性。这是通过读取IO PB.02引脚的状态(映射到Shield上可用的操纵杆)来完成的。如果PB.02的状态为高电平,则认为shield可用。

如果没有Adafruit 1.8“TFT shield,则用户指示灯会以等于~1 Hz的频率切换。再次按下用户按钮,USER_LED可以使用等于~5 Hz的第二个频率进行切换。第三次按下,将USER_LED切换频率更改为~10 Hz。所描述的过程在无限循环中完成。

如果Adafruit 1.8“TFT shield可用,则点亮USER_LED,因为它与LCD和microSD通信共享相同的引脚SPI CLK信号。

Adafruit 1.8“TFT上显示一个菜单,描述了演示应用程序,如下图所示:

图5.  演示应用程序菜单

图5.  演示应用程序菜单.jpg


用户需要遵循以下步骤:

1.    向下按操纵杆继续显示菜单(见下图)

图6.  读取Adafruit shield操纵杆

图6.  读取Adafruit shield操纵杆.jpg

2.    使用操纵杆按钮选择一种可用的显示模式(手动或自动):

   - 自动模式:通过向下按操纵杆选择。

    microSD卡上可用的位图图像按顺序显示在永久循环中。

    - 手动模式:通过按操纵杆上(UP)选择。

    显示microSD卡上可用的位图图像, 通过按操纵杆RIGHT显示下一个图像,或操纵杆LEFT显示前一张图像。

    长按(~1秒)进入操纵杆SEL,将显示模式从手动切换到自动。


请注意,应用程序访问microSD卡以加载位图图像时,可能会出现的一些错误(请参见下图)

•     如果microSD卡未进行FAT格式化,则TFT上会显示一条消息。

在这种情况下,请格式化microSD卡,并将Bmp文件放在FW包中的\ Media文件夹的根目录。

•     如果microSD卡的内容不是位图文件,则会在TFT上显示一条消息提示该文件不受支持。

用户必须确保microSD卡根目录下可用的文件符合描述的位图属性。

图7.   演示应用程序错误消息

图7.   演示应用程序错误消息.jpg

下图显示了应用程序运行的示例。

图8.   在STM8 Nucleo-64开发板上运行的应用程序示例

图8.   在STM8 Nucleo-64开发板上运行的应用程序示例.jpg


3.1    编程固件应用程序

使用示例对STM8 Nucleo-64板进行编程,操作如下:

•    安装推荐的集成开发环境(IDE)。

•    安装ST网站上提供的ST-LINK / V2.1驱动程序。

•    选择一个支持的工具链(IAR/ STVD-COSMIC)并按照以下步骤操作:

    1.  打开应用程序文件夹:Project \ Image_Viewer

    2.  选择所需的IDE项目(IAR的EWARM,STVD-COSMIC)

    3.  双击项目文件(例如Project.eww for EWARM)

   4.  重建所有文件:转到Project并选择Rebuild all

   5.  加载项目图像:转到Project并选择Debug

   6.  运行程序:转到Debug并选择Go。


演示软件以及允许用户探索STM8例微控制器功能的其他软件示例可在ST网站www.st.com/stm8上获得。


4    常见问题

1.     如何使用此应用程序显示用户自己的图像?

通过使用任何图像编辑工具并将图像裁剪为不大于160像素高和128像素宽。图像必须保存为16位彩色BMP格式文件。


2.     可以显示更多位图文件吗?

是的。可以显示更多图片。用户必须复制这些图像到microSD的根目录下,并将MAX_BMP_FILES常量的define值修改为所需的文件数。

必须通过定义可以同时打开的文件数来微调_FS_LOCK值。这是在FatFs配置文件的“ffconf.h”下完成的。


3.    位图文件可以放在microSD的根目录下吗?

如果位图文件存储在根目录以外的文件夹中,则无法通过演示应用程序访问它们。 LCD上显示“文件类型不支持”错误消息。为了正常工作,用户必须在fatfs_storage.c文件中的f_open()f_opendir()下添加新的目录路径。


5    修订记录

表3.  文档修订历史记录

日期
版本
变更内容
2018年6月29日
1
首次发布。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 10 | 回复: 17



手机版|

GMT+8, 2021-4-15 08:19 , Processed in 0.083011 second(s), 31 queries . Powered by Discuz! X3.4

YiBoard一板网 © 2015-2020 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表