时间:2022-05-31 05:44:08
【摘要】Cortex-M3A是ARM推出了新的产品,其在低成本、低功耗上具有很高的优势。本文对ARM Cotex-M3和STM32微控制器进行了研究,通过选择意法半导体STM32F开发板,对STM32的基本模块GPIO、RTC、USART、TFTLCD等的研究完成了相关设计,从而实现了万年历在液晶屏和PC端的显示,同时在液晶屏上实现了小容量的数码相册及图片的循环播放。
【关键词】STM32ARM Cortex-M3TFTLCD通用同步异步收发器万年历
一、引言
意法半导体(ST Microelectronics,简称ST)推出的STM32微控制器,是ST第一个基于ARM Cortex-M3内核的控制器。STM32的出现将当前微控制器的性价比水平提升到了新的高度,同时它在低功耗场合和硬实时控制场合中亦能游刃有余[1],考虑到用户应用的多样性和大跨度的需要,STM32很好的在整个系列保持了引脚的兼容性及外设的配置的兼容性[2]。
2008年5月ST推出扩展升级的STM32些列产品线,新系列配备最高达512KB的片上闪存、存储空间更大的SRAM和更多的外设功能,以用于显示、声音、存储和高级控制。STM32系列给MCU用户带来了前所未有的自由空间,提供了全新的32位产品选项,结合了高性能、实时、低功耗、低电压等特性,同时保持了高集成度和易于开发的优势[3]。
ARM在1990年成立,当初的名字是“Advanced RISC Machines Ltd.,”,当时它是三家公司的合资―――它们分别是苹果电脑,Acorn电脑公司,以及VLSI技术(公司)。
基于ARM Cortex-M3的STM32的优势有:(1)可以选择采用固件库开发,不必接触底层寄存器,大大缩短开发周期,降低上手难度;(2)性价比高,32位的控制器有着接近于16位甚至高端8位控制器的价格;(3)功能丰富,从工控、小嵌入式均能胜任。STM32已经广泛应用在工业控制、建筑与安防、低功耗、家用电器及计算机网络和通信等领域。STM32最多5个串口,通讯方便自由,如对讲机、空中鼠标、游戏手柄、电话POS等[4]。
本文旨在对STM32微控制器的深入研究,对意法半导体开发板STM32F(100脚)进行调试与开发。对此开发板中的各个模块如GPIO、定时器、USART、中断、BKP(备份寄存器)、PWR(电源控制)、RCC(复位和时钟控制)、 FSMC、TFTLCD等进行研究。在此基础上,实现功能:将图片显示到TFTLCD上,万年历通过串口在PC上显示,并且可以在TFTLCD上显示。
一、系统模块与开发平台
1.1STM32开发板
RealView MDK的突出特性:(1)启动代码生成向导,自动引导;(2)软件模拟器,完全脱离硬件的软件开发过程;(3)性能分析器,看得更远、更细、更清;(4)Cortex-M3支持;(5)RealView编译器,代码更小,性能更高。
1.3软件系统的设计流程
在实际开发中,需要使用外设的时候一般有三个步骤,这里以GPIO外设为例简单介绍一下开发流程:
(1)修改配置文件stm32f10x_conf.h。
将配置文件gpio的宏打开,如图4。
(2)加载stm32f10x_gpio.c文件
stm32f10x_gpio.c是GPIO对应的库文件,对GPIO的一系列操作都是封装完成并存放在这类文件里。加载过程如图5所示。
(3)参数设置。
包括配置使用管脚、输入或输出模式、选中管脚的速率,开发人员只需根据所需要求在对应的参数位置进行设置即可。一个简单的实例如下:
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
//D1
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);}
其它模块的应用也类似于此,这样就屏蔽了寄存器配置细节,同时加快了开发速度。
二、TFTLCD显示图片的实现
此设计中实现了两幅图片的循环播放,为实现数码相框奠定一定的基础。图片每循环一次,D1、D2、D3和D4循环闪烁一次。第一幅图片显示结果以及第二幅图片显示结果如图6和图7所示。
三、万年历设计实现
3.1设计原理
实时时钟(Real Time Clock,RTC)是一种能提供日历/时钟及数据存储等功能专用集成电路,常用作各种计算机和嵌入式系统的时钟信号源和参数设置存储电路。特别是在各种嵌入式系统中用于记录事件发生的时间和相关信息,如通信工程、电气自动化、工业控制等自动化程度高的领域中的无人值守环境。
3.2设计步骤
①上电后初始化系统时钟。
②设置GPIO引脚。
③初始化FSMC以及LCD。
④配置RTC:使能PWR和BKP模块的时钟;使能对备份区域的访问。
⑤检查预定义的标记判断RTC是否曾经设置过:预定义的标记设置在备份区域的备份寄存器,不受系统掉电的影响。
⑥如果RTC未曾设置过,则初始化RTC模块:时钟源LSE.和.秒中断的产生。
⑦设置RTC计数器:以一个基准作为时间原点。例如RTC计数值为0时表示:2008年1月1日0:0:0。输入当前年/月/日/时/分/秒,计算离时间原点的秒数。
⑧显示时间:根据当前RTC计数器的值,得到现在距时间原点的秒数,反算出当前的年/月/日/时/分/秒。
图8为设计流程图。
3.3TFTLCD显示成果
将程序编译完后,通过JTAG接口下载到开发板,显示结果如图9所示。
四、总结
STM32微控制器是近年来迅速兴起的基于ARM Cortex-M3内核的高端32位微控制器的代表,本问对意法半导体STM32F103VEBT6(100脚)微控制器进行了研究探讨,分析了开发板的各个模块功能,并实现了两个主要功能:万年历显示和图片显示。最后,设计中的万年历实现及图片显示是拥有现实意义的,其可以逐步的扩展到其它模块,并实现各个模块的结合。随着进一步的应用,其最终可实现STM32微控制器在各应用领域的应用,如工业缝纫机,游戏手柄,汽车音响等,实现低功耗且高性能的结合。
参考文献
[1] Zhao Yu-mei; CHEN Fu-rong. The S2- Chemical Sensor for Ocean Monitoring[J].Ocean Technology, 2005,24(4) :57-59.
[2] Zhao Yu-mei; CHEN Fu-rong. Research on Key Technique of Lower Concentration S2- Sensor In Situ Measurement [J]. Ocean Technology, 2008,27 (4) :33-35.
[3] Yan Jingdong.An Improved Intelligence Sensor Data fusion Method[J].Microcomputer Information,2009,01:149~151
[4] Joseph Yiu著,宋岩译.ARM Cortex-M3权威指南.北京:北京航空航天大学出版社,2009.
[5]彭刚,秦志强.基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践.北京:电子工业出版社,2011.1.