以ARM Cortex-M3为基础的STM32开发板的设计与实现

时间:2022-05-31 05:44:08

以ARM Cortex-M3为基础的STM32开发板的设计与实现

【摘要】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.

上一篇:新疆水利信息化建设浅析 下一篇:基于PON网络的自助装维支撑系统的研究与开发