当前位置:文档之家› 基于Cortex-M3的STM32的嵌入式十字路口交通灯系统设计

基于Cortex-M3的STM32的嵌入式十字路口交通灯系统设计

基于Cortex-M3的STM32的嵌入式十字路口交通灯系统设计
基于Cortex-M3的STM32的嵌入式十字路口交通灯系统设计

天津工业大学嵌入式系统课程设计报告十字路口交通灯控制系统

学院:电子与信息工程学院

专业班级:电子1102班

姓名:刘楠楠

学号:1110910221

时间:2014年11月30号

指导教师:高华老师

摘要

随着移动设备的流行和发展,嵌入式系统已经成为一个热点。它并不是最近出现的新技术,只是随着微电子技术和计算机技术的发展,微控制芯片功能越来越大,而嵌入微控制芯片的设备和系统越来越多,从而使得这种技术越来越引人注目。它对软硬件的体积大小、成本、功耗和可靠性都提出了严格的要求。嵌入式系统的功能越来越强大,实现也越来越复杂,随之出现的就是可靠性大大降低。最近的一种趋势是一个功能强大的嵌入式系统通常需要一种操作系统来给予支持,这种操作系统是已经成熟并且稳定的,可以是嵌入式的Linux,WINCE等等。本文所要研究的就是基于ARM嵌入式系统的交通灯系统的设计与实现。本设计采用了ARM32位的Cortex-M3 CPU的内核的STM32作为核心处理器。

关键词:嵌入式交通灯STM32f103 ARM

Abstract

With the popularity and development of mobile devices, embedded system has become a hotspot. It is not a new technique appeared recently, only with the development of microelectronics and computer technology, micro chip control functions more and more, more and more equipment and systems and embedded micro control chip, making the technology more attract sb.'s attention. Hardware and software of its size, cost, power consumption and reliability have made stringent requirements. The function of embedded system is more and more powerful, and more and more complicated, the reliability appears is greatly reduced. A recent trend is a powerful embedded systems usually require an operating system to support, the operating system is already mature and stable, can be embedded Linux, WINCE and so on. This paper is to study the design and Realization of the traffic light system based on ARM embedded system. This design uses the ARM32 bit Cortex-M3 CPU kernel STM32 as the core processor.

Keywords: embedded STM32f103 traffic lights ARM

目录

一引言 .......................................................................................................... 错误!未定义书签。二相关内容和原理 (1)

三作品设计要求 (1)

四作品方案设计 (2)

4.1 设计思路 (2)

4.2 总体设计框图 (3)

4.3 总体方案设计参数计算 (4)

五系统硬件电路设计及分析 (4)

5.1 STM32f103芯片介绍及选用 (4)

5.2 单片机电路原理图及分析 (4)

5.3 电源电路模块原理图及分析 (5)

5.4 晶振与复位电路模块原理图 (5)

5.5 LED交通灯电路原理图及分析 (6)

六系统软件设计及其分析 (7)

6.1 软件设计流程图 (8)

6.2 ARM交通灯控制软件设计 (8)

七系统软件代码 (9)

7.1 软件设计流程图 (9)

7.2 部分程序代码 (10)

八 Keil软件的运用与调试 (16)

九实物演示照片 (17)

十作品电路的PCB图 (19)

十一设计心得及体会 (20)

十二参考文献 (21)

1引言

交通信号灯指挥着人和各种车辆的安全运行,实现红、黄、绿灯的自动指挥是城乡交通管理现代化的重要课题。在城乡街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通信号灯,其中红灯亮,表示该条道路禁止通行; 黄灯亮,表示该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮,表示该条道路允许通行。交通灯控制电路自动控制十字路口两组红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口城乡交通管理自动化。

本文为了实现交通道路的管理,力求交通管理先进性、科学化。分析应用了单片机实现智能交通灯管制的控制系统,以及该系统软、硬件设计方法,实验证明该系统实现简单、经济,能够有效地疏导交通,提高交通路口的通行能力。

2 相关内容及原理

通过设计,培养自己综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练,加深对ARM芯片的了解;熟悉ARM芯片各个引脚的功能,工作方式,计数/定时,I/O口,中断等相关原理,巩固学习嵌入式的相关内容知识。

利用ARM芯片模拟实现交通灯控制,自行选择所需ARM芯片,查阅相关文献资料,熟悉所选ARM芯片,了解所选ARM芯片各个引脚功能,工作方式,计数/定时,I/O口,中断等相关原理,通过软硬件设计实现利用ARM芯片完成交通灯的模拟控制。

3 作品设计要求

要求基于Cortex系列单片机设计一具有模拟道路路口交通灯相应功能的交通灯模拟系统。具体要求如下:

(1)具有三种颜色显示:红色、绿色和黄色,分别代表路口交通灯的三种

颜色。

(2)所设计的系统应至少能够模拟两个路口的功能,具有直行和左转的功能。

(3)如果能力和时间允许,可以加入操作系统。

(4)适当加入一些其他元素,使其更加具有人性化设计。

4 作品方案设计

4.1 设计思路

利用STM32F103芯片实现单路交通灯的控制:a 实现红、绿、黄灯的循环控制。使用红、黄、绿三种不同颜色的LED灯实现此功能,主干道正前方方向的LED灯,编号分别为1、2、3,分别接在单片机的PB8、PB6、PB9的引脚上;主干道右方的LED灯,编号分别为4、5、6,分别接在单片机的PA14、PA10、PA8的引脚上;主干道后侧的LED灯,编号分别为7、8、9,分别接在单片机的PD10、PD12、PD14引脚上。主干道左方的LED灯,编号分别为10、11、12,分别接在单片机的PE7、PE11、PE15引脚上。以此实现四个路口的交通灯模拟系统。用软件控制灯的亮与灭来控制车辆和行人的通行。

交通路口示意图如图4.1车辆遇到红灯停绿灯行的行走情况,红绿灯时间均为2000ms,切换时间为2000ms,最后2000ms为黄灯闪烁。

图4.1 交通路口示意图

4.2 总体设计框图

用ARM系列芯片STM32F103作为系统的主控芯片,控制交通灯的循环点亮并显示灯亮时间(采用倒计时显示),当定时时间到的时候通过灯的状态来提醒人们注意红绿灯的状态。

图4.2 交通灯总体设计框图

5 硬件电路模块设计及其分析

根据设计任务要求,自行选择电子元件,画出电气原理图,并调试。一个完整的系统除了主控芯片以外,还需配上电源系统、时钟电路、复位电路等。独立的芯片是不能工作的。

5.1 STM32F103芯片介绍

STM32F103是基于一个支持实时仿真和嵌入式跟踪的32 位 CPU 的微控制器,STM32F1系列属于中低端的32位ARM微控制器,该系列芯片是意法半导体(ST)公司出品,其内核是Cortex-M3。该系列芯片按片内Flash的大小可分为三大类:小容量(16K和32K)、中容量(64K和128K)、大容量(256K、384K 和512K)。芯片集成定时器,CAN,ADC,SPI,I2C,USB,UART,等多种功能。具有以下一些特性:

?ARM 32位的Cortex-M3

?最高72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHZ (DhrystONe2.1),从32K到512K字节的闪存程序存储器,最大64K字节SRAM

?2.0-3.6V供电和I/O引脚

?上电/断电复位(POR/PDR)、可编程电压监测器(PVD)

?4-16MHZ晶振振荡器

?内嵌经出厂调教的8MHz的RC振荡器

?2个12位模数转换器,1us转换时间(多达16个输入通道),转换范围:0至3.6V,双采样和保持功能

?2个DMA控制器,共12个DMA通道:DMA1有7个通道,DMA2有5个通道

?片内晶振频率范围:1~30 MHz。

?通过片内PLL可实现最大为60MHz的CPU操作频率,PLL的稳定时间为100us

?支持的外设:定时器、ADC、SPI、USB、IIC和UART

?多达112个快速I/O端口(仅Z系列有超过100个引脚)

?3个16位定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM 或脉冲计数的通道和增量编码器输入

?1个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器?ECOPACK封装

5.2 STM32F103主电路原理图

图5.1为STM32F103芯片的原理图,多达100个引脚,采用3.3V或者5V 电源供电,设计所需外接器件的网络名已经标出。

图5.1 STM32F103芯片的原理图

5.3 系统电源电路设计

本电源运用5V的直流电源(图5.2所示)。通过LM78系列芯片将5V电压转换为电压,为STM32F103芯片供电,STM32F103芯片所能承受的电压范围是2V~3.6V。

图5.2 直流电源电路设计

5.4 晶振与复位电路模块

系统的晶振电路如图5.4所示STM32f103芯片采用8MHz的晶振作为振荡时钟源,外部是倍频72MHz晶振。通过对芯片的进行软件设计可以将晶体振荡器的频率分频为所需的频率;系统的复位电路如图5.5所示,STM32F103芯片的14号引脚连接到主控芯片的复位引脚(nRST)上,按下复位键S2时,系统将会复位到初始的状态。

图5.4 系统的晶振电路图图5.5 系统的复位电路图

5.5 LED循环显示设计

由南向北和由北向南车道各用一组红、绿、黄三色的指示灯,左右两侧也是各三个灯,指挥车辆通行。绿灯是通行信号,面对绿灯的车辆可以直行,红灯是禁止通行信号,面对红灯的车辆必须在路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以继续行进。具体红绿灯时间分配时间如表5.1所示。

表5—1:红绿灯时间分配时间如表

上表说明主干通道绿灯亮、黄灯闪时人行道都是红灯亮,只有车道

红灯亮(车辆完全停下来)时人行道绿灯才亮,这样保证了过马路的行人人身安

全,避免了不必要的交通事故。硬件电路连接图如图5.6所示

图5.6 硬件电路连接图

交通灯LED的发光和熄灭的控制,是通过控制GPIO寄存器组来完成的,须先将引脚PA、PB、PD、PE等通过引脚功能选择寄存器PINSEL1,设置为GPIO方式;再设置GPIO方向寄存器1(IO1DIR),对应的引脚设置为输出方向。要点亮LED1~LED12需要使用GPIO清零寄存器1(IO1CLR)的对应位设置为1,即在引脚PA、PB、PD、PE上加逻辑低电平,即可点亮这些灯。与之相反,要熄灭这些灯,则要用GPIO输出置位寄存器1(IO1SET)将对应的位置位即可。

6 系统软件设计及其分析

6.1 软件设计流程图

图6.1为ARM模拟交通灯控制程序流程图,主程序主要完成倒计时显示及控制蜂鸣器,中断服务程序主要控制那些灯亮以及亮的时间。

图6.1 ARM 模拟交通灯控制程序流程图

6.2 ARM 交通灯模拟控制程序设计

定时器控制原理:定时器对外设时钟Fpclk 周期进行计数,根据4个匹配寄存器的设定可设置为匹配(即达到匹配寄存器指定的定时值)时产生中断或执行其他操作。

设置P0、P1口为GPIO 输出状态,初始化定时器,选定定时器0中断为向量

IRQ,对VICIntEnable、VICIntSelect、VICvectCntl进行设置,初始化SPI接口,根据设计要求编写软件程序。根据事先画好的程序流程图,用C语言编写程序,在主程序中对需要用到的I/O口进行定义,并设置相应的I/O口,比如要求P1。18~P1。25引脚为GPIO功能,则通过对引脚功能选择寄存器PINSEL1将对应的引脚设置为GPIO方式并设置GPIO方向,在GPIO方向寄存器IO1DIR里设置,之后对定时器0进行初始化,并开相应的中断。然后进入大循环进行倒计时显示、控制蜂鸣器的蜂鸣与否并判断flag是否加到设定值,对flag加到设定值后进行清零,让flag重新计数。中断服务程序的设计,每隔一秒钟定时器中断一次,每中断一次flag加1根据LED点亮的先后顺序以及点亮的时间,分别编写相应的程序。

7 系统软件代码

7.1 软件设计流程图

图7.1 软件设计流程图

7.2 系统软件代码

主程序部分:

#include "stm32f10x.h"

#include "led.h"

#include"timer.h"

u32 time=0;//Ms级延时变量

int i;

int main(void)

{

LED_GPIO_Configuration();

TIM2_Config1();

TIM2_NVIC_Config1();

TIM_Cmd(TIM2,ENABLE);//开启TIM2

while(1){

i=0;

Delay_MS(2000);

LED2(ON);LED4(ON);LED7(ON);LED10(ON);//直行灯亮

Delay_MS(2000);//延时

LED2(OFF);//直行灯灭

while(i<10) //黄灯闪烁

{ LED3(ON);

Delay_MS(100);

LED3(OFF);

Delay_MS(100);

i++;

}

LED2(OFF);LED4(OFF);LED7(OFF);LED10(OFF);//直行灯结束 LED1(ON);LED7(ON);LED10(ON);LED5(ON);//右行灯亮Delay_MS(3000);

LED5(OFF);//右行灯灭

i=0;

while(i<10)

{ LED6(ON);

Delay_MS(100);

LED6(OFF);

Delay_MS(100);

i++;

}

LED5(OFF);LED1(OFF);LED7(OFF);LED10(OFF);//右行灯结束 LED1(ON);LED7(ON);LED4(ON);LED11(ON);//左行灯亮 Delay_MS(3000);

LED11(OFF);//左行灯灭

i=0;

while(i<10)

{ LED12(ON);

Delay_MS(100);

LED12(OFF);

Delay_MS(100);

i++;

}

LED11(OFF);LED1(OFF);LED7(OFF);LED4(OFF);//左行灯结束 LED1(ON);LED4(ON);LED10(ON);LED8(ON);//后行灯

Delay_MS(3000);

LED1(OFF);LED4(OFF);LED10(OFF);LED8(OFF);//后行灯灭 }

}

底层寄存器配置部分:

void LED_GPIO_Configuration(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

/*开启GPIOC&GPIOE的时钟 */

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE|RCC_ APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);

/* Configure PB.04, PB.06 and PB.08*/

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_6 | GPIO_Pin_8 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//输出上拉

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_InitStructure);

/* Configure PA.08, PA.10 and PA.12 */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_10 |

GPIO_Pin_12 ;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//输出上拉

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

/* Configure PD.10, PD.12 and PD.08 */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_12 |

GPIO_Pin_15;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//输出上拉

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOD, &GPIO_InitStructure);

/* Configure PE.07, PE.11 and PE.15 */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_11 |

GPIO_Pin_15;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//输出上拉

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOE, &GPIO_InitStructure);

LED1(OFF);LED2(OFF);LED3(OFF);LED4(OFF);LED5(OFF);LED6(OFF);LED7(OFF) ;LED8(OFF);LED9(OFF);LED10(OFF);LED11(OFF);LED12(OFF);

内联函数定义LED函数部分:

#ifndef _LED_H

#define _LED_H

#include"stm32f10x.h"

#define ON 0

#define OFF 1

/***************内联函数定义LED函数****************/ #define LED1(a) if (a) \

GPIO_SetBits(GPIOB,GPIO_Pin_8);\

else \

GPIO_ResetBits(GPIOB,GPIO_Pin_8)

#define LED4(a) if (a) \

GPIO_SetBits(GPIOA,GPIO_Pin_12);\

else \

GPIO_ResetBits(GPIOA,GPIO_Pin_12)

#define LED7(a) if (a) \

GPIO_SetBits(GPIOD,GPIO_Pin_10);\

else \

GPIO_ResetBits(GPIOD,GPIO_Pin_10)

#define LED10(a) if (a) \

GPIO_SetBits(GPIOE,GPIO_Pin_15);\

else \

GPIO_ResetBits(GPIOE,GPIO_Pin_15)

#define LED2(a) if (a) \

GPIO_SetBits(GPIOB,GPIO_Pin_6);\

else \

GPIO_ResetBits(GPIOB,GPIO_Pin_6)

#define LED5(a) if (a) \

GPIO_SetBits(GPIOA,GPIO_Pin_10);\

else \

GPIO_ResetBits(GPIOA,GPIO_Pin_10) #define LED8(a) if (a) \

GPIO_SetBits(GPIOD,GPIO_Pin_12);\

else \

GPIO_ResetBits(GPIOD,GPIO_Pin_12) #define LED11(a) if (a) \

GPIO_SetBits(GPIOE,GPIO_Pin_11);\

else \

GPIO_ResetBits(GPIOE,GPIO_Pin_11) #define LED3(a) if (a) \

GPIO_SetBits(GPIOB,GPIO_Pin_9);\

else \

GPIO_ResetBits(GPIOB,GPIO_Pin_9) #define LED6(a) if (a) \

GPIO_SetBits(GPIOA,GPIO_Pin_8);\

else \

GPIO_ResetBits(GPIOA,GPIO_Pin_8) #define LED9(a) if (a) \

GPIO_SetBits(GPIOD,GPIO_Pin_15);\

else \

GPIO_ResetBits(GPIOD,GPIO_Pin_15) #define LED12(a) if (a) \

GPIO_SetBits(GPIOE,GPIO_Pin_7);\

else \

GPIO_ResetBits(GPIOE,GPIO_Pin_7) void LED_GPIO_Configuration(void);

#endif

8 Keil软件的运用与调试

根据事先画好的程序流程图,用C语言编写程序,并成功生成HEX文件,利用keil软件编译结果如图8.1 所示。

图8.1 编译结果示意图

调试过程截图:

设计为系统上电即点亮车道红灯以及马路绿灯,倒计时1000ms红灯开始闪烁,同时马路红灯亮,红灯闪1000ms接着转为黄灯闪1000ms,然后车辆通道转为绿灯亮,1000ms后绿灯闪1000ms,黄灯再闪1000ms之后又回到红灯亮,人行道只在车辆通道红灯时才亮绿灯。这主要靠在中断服务程序中对计数值flag的判断来对正在点亮的灯进行定时实现程序详细清单见附录。

9 实物演示照片

基于STM32F103ZET6最小系统设计

电路设计与PCB制板》 设计报告 题目:基于STM32F103ZET6最小系统 引言:Altium Designer基于一个软件集成平台,把为电子产品开发提供完整环境所需工具全部整合在一个应用软件中。 Altium Designer 包含所有设计任务所需工具:原理图和PCB设计、基于FPGA的嵌入式系统设计和开发。 目前我们使用到的功能特点主要有以下几点: 1、提供了丰富的原理图组件和PCB封装库并且为设计新 的器件提供了封装,简化了封装设计过程。 2、提供了层次原理图设计方法,支持“自上向下”的设 计思想,使大型电路设计的工作组开发方式称为可能。 3、提供了强大的查错功能,原理图中的ERC(电气规则 检查)工具和PCB 的DRC(设计规则检查)工具能帮助设计者更快的查出和改正错误。 4、全面兼容Protel系列以前的版本,并提供orcad格式文 件的转换。

一、课程设计目的 1、培养学生掌握、使用实用电子线路、计算机系统设计、制板的能力; 2.提高学生读图、分析线路和正确绘制设计线路、系统的能力; 3.了解原理图设计基础、了解设计环境设置、学习 Altium Designer 软件的功能及使用方法; 4.掌握绘制原理图的各种工具、利用软件绘制原理图; 5.掌握编辑元器件的方法构造原理图元件库; 6. 熟练掌握手工绘制电路版的方法,并掌握绘制编辑元件封装图的方法,自己构造印制板元件库; 7.了解电路板设计的一般规则、利用软件绘制原理图并自动生成印制板图。 二、设计过程规划 1、根据实物板设计方案; 2、制作原理图组件;

3、绘制原理图; 4、选择或绘制元器件的封装; 5、导入PCB图进行绘制及布线; 6、进入DRC检查; 三、原理图绘制 ?新建工程: 1.在菜单栏选择File → New → Project → PCB Project 2.Projects面板出现。 3.重新命名项目文件。 ?新建原理图纸 1. 单击File → New→ Schematic,或者在Files面板的New单元选择:Schematic Sheet。 2.通过选择File → Save As来将新原理图文件重命名(扩展名为M 3.SchDoc),和工程保存在同一文件目录下。

基于STM32的经典项目设计实例

13个基于STM32的经典项目设计实例,全套资料STM32单片机现已火遍大江南北,各种教程资料也是遍布各大网站论坛,可谓一抓一大把,但大部分都差不多。今天总结了几篇电路城上关于STM32 的制作,不能说每篇都是经典,但都是在其他地方找不到的,很有学习参考意义的设计实例。尤其对于新手,是一个学习stm32单片机的“活生生”的范例。 1.开源硬件-基于STM32的自动刹车灯设计 自动刹车灯由电池供电并内置加速度传感器,因此无需额外连接其他线缆。使用两节5号电池时,设计待机时间为一年以上(待机功耗66微安),基本可以实现永不关机,即装即忘。 2.基于STM32F407的openmv项目设计资料 本项目是一个openmv,通过摄像头可以把图像实时传输给显示屏显示。MCU选择的是STM32F407(STM32F407数据手册),ARM Cortex-M4内核,最高频率可达180Mhz,包含一个单精度浮点DSP,一个DCMI(数字相机接口)。 3.STM32无线抢答器 无线抢答器采用STM32F302(STM32F302数据手册)芯片主控,同时用蓝牙,语音模块,数码管,七彩灯等部件构成,当主持人按下抢答键时,数码管进入倒记时,选手做好准备,当数码管从9变为0时,多名选手通过手机上虚拟按键进行抢答,同时语音播报抢答结果,显示屏上显示选手的抢答时间。 4.基于ARM-STM32的两轮自平衡小车 小车直立和方向控制任务都是直接通过控制小车两个电机完成的。假设小车电机可以虚拟地拆解成两个不同功能的驱动电机,它们同轴相连,分别控制小车的直立平衡、左右方向。 5.基于STM32F4高速频谱分析仪完整版(原创) 本系统是以STM32F407(STM32F407数据手册)进行加Blackman预处理,再做1024个点FFT进行频谱分析,最后将数据显示在LCD12864上,以便进行人机交互!该系统可实现任意波形信号的频谱显示,以及可以自动寻找各谐波分量的幅值,频率以及相位并进行8位有效数据显示。 6.基于STM32F4的信号分析仪设计(有视频,有代码) 这次基于discovery的板子做一个信号分析仪,就是练手,搞清楚STM32F4(STM32F4系列数据手册)中的USB固件编写,USB驱动的开发,上位机UI开发等一整套流程,过一把DIY的瘾。 7.基于STM32F4的解魔方机器人-stm32大赛二等奖(有视频) 本系统是基于Cortex-M4内核的STM32微控制器的解魔方机器人,在硬件方面主要有OV7670摄像头,LCD,舵机,在软件方面主要有OV7670的驱动,摄像头颜色识别算法,解魔方算法和舵机动作算法。整个设计过程包括电子系统的设计技术及调试技术,包括需求分析,原理图的绘制,制版,器件采购,安装,焊接,硬件调试,软件模块编写,软件模块测试,系统整体测试等整个开发调试过程。

7个基于STM32单片机的精彩设计实例

7个基于STM32单片机的精彩设计实例,附原理图、代码等相关资料 STM32单片机现已火遍大江南北,各种教程资料也是遍布各大网站论坛,可谓一抓一大把,但大部分都差不多。今天总结了几篇电路城上关于STM32的制作,不能说每篇都是经典,但都是在其他地方找不到的,很有学习参考意义的设计实例。尤其对于新手,是一个学习stm32单片机的“活生生”的范例。 1、STM32与FPGA强强联合,实现完整版信号发生器 话说之前看过作者的另外一个作品,是STM32和FPGA实现的示波器,当然感觉不做。现在作者又推出了信号发生器。重点是TFT触屏来控制波形,相当于一个终端,STM32用来通信,起到了FPGA和TFT之间的纽带作用。最后波形输出作者使用了巴特沃斯滤波器,让输出的波形更加干净。虽然以高端的信号发生器无法比拟,但是用于平时信号输出使用时足够了。 2.采用STM32单片机基于uCOS II系统控制VS1053B语音芯片制作的MP3播放器 一看到uCOS II,就觉得是个高级货,绝对不是一般的小打小闹。该制作耗时半年能完成制作,不得不佩服作者的坚持。这个使用了VC1053B音频模块,TFT液晶显示,还是用了NRF24L01无线模块(暂时没明白这个无线如何使用的),最后作者还很细心的提供了理论指导,方便大家制作。 3.使用OV7670让STM32转身变成照相机(附原理图、代码源文件) 经常使用STM32的同学有没有做过照相机呢?虽说在智能手机遍布的时代,正经相机也要束之高阁了。但是能使用STM32做个相机,拿出去拍个照也是非常拉风的。这个相机使用了ST32F103C8T6(ST32F103C8T6数据手册),摄像头用的是OV7670,带SD卡和触摸屏2.4寸,整体尺寸和卡片机差不多。 4.基于STM32的手机WIFI 控制四轴飞行器设计 我们平时看到的四轴飞行器多是遥控手柄控制的,给你推荐的这个是手机通过wifi就可以控制了,重点在作者还提供了安卓版本的app,直接安装就可以控制飞行器了,当然前提是要根据作者提供的原理图、pcb、代码做出个飞行器了。对APP感兴趣的朋友不妨写写ios 版本的。 5、使用STM32F103RC实现数字万用表设计,具备常用功能 作为电子工程师,最经常用到的就是万用表,可以很少人知道万用表里面的结构、测电压的过程。现在就有人用STM32F103(STM32F103数据手册)做了个数字万用表,只有三个常用功能:测电压(0-50v),测电阻(1k-390k),短路档,使用了LCD5110显示数据,大家不妨动动手开发其他功能。 6、基于RFID技术、以STM32为终端的智能小区管理系统 话说现在高档小区越来越多,对小区的智能化管理也在日渐智能化。这个设计就使用了当下很火的wifi智能控制。系统由多个智能服务终端和系统服务器所组成。智能服务终端就是一个基于STM32的完备系统,涵盖了室内环境监测、高温火警GSM报警、A卡管理助手、天气助手、用户电子账单、万年历、小区意见反馈等功能。

基于stm32的智能小车设计毕业设计

海南大学 毕业论文(设计) 题目:基于stm32的智能小车设计学号:20112834320005 姓名:陈亚文 年级:2011级 学院:应用科技学院(儋州校区) 学部:工学部 专业:电子科学与技术 指导教师:张健 完成日期:2014 年12 月 1 日

摘要 本次试验主要分析了基于STM32F103微处理器的智能小车控制系统的系统设计过程。此智能系统的组成主要包括STM32F103控制器、电机驱动电路、红外探测电路、超声波避障电路。本次试验采用STM32F103微处理器为核心芯片,利用PWM技术对速度以及舵机转向进行控制,循迹模块进行黑白检测,避障模块进行障碍物检测并避障功能,其他外围扩展电路实现系统整体功能。小车在运动时,避障程序优先于循迹程序,用超声波避障电路进行测距并避障,在超声波模块下我们使用舵机来控制超声波的发射方向,用红外探测电路实现小车循迹功能。在硬件设计的基础上提出了实现电机控制功能、智能小车简单循迹和避障功能的软件设计方案,并在STM32集成开发环境Keil下编写了相应的控制程序,并使用mcuisp软件进行程序下载。 关键词:stm32;红外探测;超声波避障;PWM;电机控制

Abstract This experiment mainly analyzes the control system of smart car based on microprocessor STM32F103 system design process. The composition of the intelligent system mainly including STM32F103 controller, motor drive circuit, infrared detection circuit, circuit of ultrasonic obstacle avoidance. This experiment adopts STM32F103 microprocessor as the core chip, using PWM technique to control speed and steering gear steering, tracking module is used to detect the black and white, obstacle avoidance module for obstacle detection and obstacle avoidance function, other peripheral extended circuit to realize the whole system function. When the car is moving, obstacle avoidance program prior to tracking, using ultrasonic ranging and obstacle avoidance obstacle avoidance circuit, we use steering gear under ultrasonic module to control the emission direction of ultrasonic, infrared detection circuit is used to implement the car tracking function. On the basis of the hardware design is proposed for motor control function, simple intelligent car tracking and obstacle avoidance function of software design, and in the STM32 integrated development environment under the Keil. Write the corresponding control program, and use McUisp program download software. Keywords:STM32;Infrared detection;Ultrasonic obstacle avoidance;PWM;Motor control

基于STM32的简易电子计算器设计与实现

四川师范大学成都学院通信工程学院 基于STM32的简易电子计算器设计与实现---实验综合设计报告 学生姓名陶龑 学号2016301033 所在学院通信工程学院 专业名称嵌入式系统课程设计 班级2014级软件班 指导教师刘强 成绩 四川师范大学成都学院 二○一六年十一月

基于STM32的简易电子计算器设计与实现内容摘要:电子计算器即将传统意义上的计算器进行电子化和数字化,为其减少时间误差和体积,并提供更多的扩展实用功能,从而使电子计算器的应用更加广泛。在经过资料的查找与收集后,本论文以该理念设计了一款基于STM32芯片作为核心控制器,使用Keil5平台,以C语言为基础进行软件编程的简易电子计算器,其内在TFT-LCD液晶屏进行输出,以四个按键进行输入,从而实现显示输入数据以及加减乘除运算的基本功能。 通过软件程序的编写、硬件电路原理的实现、电子计算器正常工作的流程、原理图仿真实现、硬件实物的安装制作与硬件实物的调试过程,该简易电子计算器现可用于日常生活和工作中。 关键词:简易电子计算器STM32 C语言Keil5

Design and implementation of Multi Function Electronic Clock based on STM32 Abstract: The traditional electronic calculator calculator for electronic and digital, to reduce the time error and volume, and provide more extended utility function, so that the more extensive application of electronic calculators. After searching and collecting data, in this paper, the concept of a design based on STM32 chip as the core controller, using Keil5 platform, simple electronic calculator based on C language software programming, the TFT-LCD LCD screen for input and output, with four keys, so as to realize the display of input data and the basic the function of add, subtract, multiply and divide operations. Through the software program, hardware circuit principle of the electronic calculator realization, normal work process and the principle of graph simulation, hardware installation and hardware debugging process, the simple electronic calculator is used in daily life and work. Key words: Simple electronic calculator STM32 language C Keil5

基于STM32的嵌入式操作系统程序设计及实现本科毕业论文 精品

本科毕业论文(设计) 论文题目:基于STM32的嵌入式操作系统程序设计及实现 姓名:郝宇 学号:0930******** 班级:01班 年级:2009级 专业:电子信息工程学院:信息工程学院指导教师:丁光哲讲师完成时间:2013年5月20日

作者声明 本毕业论文(设计)是在导师的指导下由本人独立撰写完成的,没有剽窃、抄袭、造假等违反道德、学术规范和其他侵权行为。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。因本毕业论文(设计)引起的法律结果完全由本人承担。 毕业论文(设计)成果归武昌工学院所有。 特此声明 作者专业:电子信息工程 作者学号:0930******** 作者签名: 年月日

基于STM32的嵌入式操作系统 程序设计及实现 郝宇 The Design and Implementation of embedded operating system program based on STM32 Hao, Yu 2013年5月20日

摘要 随着科学技术不断的进步,工业生产越来越先进复杂,操作系统μC/OS-II 是高效、稳定、可靠、节能的系统,广泛应用安防,消费电子中。而基于Cortex-M3架构下的STM32是一款性价比优越新型微处理器,将μC/OS-II移植到STM32 上能够发挥其高效的性能,从而投入社会生产,制造出很多有用又实惠的电子产品,为我们的生活带来便利。 本文主要的研究内容是μC/OS-II操作系统理论分析、移植方法、应用程序设计及调试仿真实现。首先,对μC/OS-II的理论分析,研究其实际应用及系统结构;其次,分析STM32硬件平台及μC/OS-II的移植需求;最后,在μC/OS-II 上开发LCD,LED,按键KEY等应用程序,并对多任务系统调试分析。主要研究结论如下: (1)μC/OS-II操作系统主要分为任务管理、内存管理和时间管理三大部分,其间通信是通过消息队列和消邮箱。 (2)μC/OS-II移植主要在OS_CPU.H,OS_CPU_C.C,OS_CPU_A.ASM三个文件中,涉及到数据类型、堆栈、中断定义和任务切换等。 (3)应用程序设计优先级分配要合理,硬件平台初始化模块化处理。 关键词:嵌入式系统;μC/OS-II;移植

基于某STM32F103的恒温系统的设计

中国矿业大学计算机学院2013 级本科生课程报告 报告时间2016.09.20 学生谊坤 学号08133367 专业电子信息科学与技术 任课教师王凯

任课教师评语 任课教师评语(①对课程基础理论的掌握;②对课程知识应用能力的评价;③对课程报告相关实验、作品、软件等成果的评价;④课程学习态度和上课纪律;⑤课程成果和报告工作量;⑥总体评价和成绩;⑦存在问题等):

成绩:任课教师签字: 年月日 摘要 针对目前温度控制在生产生活中被广泛应用,而传统的温度控制系统是由功能繁杂的大量分离器件构成,为了节约成本、提高系统的可靠性,本文设计了一种基于STM32F103T6的温度控制系统。本设计是基于DS18B20的温度控制系统,以STM32F103ZET6为控制系统核心,通过嵌入式系统设计实现对温度的显示和控制功能。在该系统中,为了减小干扰的影响,用均值滤波算法对采样数据进行处理之后再进行温度判定等一系列操作的依据。设计中,基本上实现了该系统的功能,通过DS18B20采集温

度数据,使用LCD屏幕来显示相关的信息,能够通过加热和降温将温度控制在恒定的围,并可以手动设置恒温围,温度超出限制后会有声光报警。 关键词:STM32F103,均值滤波,恒温控制,DS18B20 目录 1 绪论 (1) 1.1选题的背景及意义 (1) 1.2设计思想 (1)

2 硬件设计 (2) 2.1硬件平台 (2) 2.2硬件设计模块图 (3) 2.3温度传感器DS18B20 (3) 2.4 LCD屏幕 (6) 2.5 DC 5V散热风扇 (8) 2.6加热片 (8) 3 软件设计 (9) 3.1软件平台 (9) 3.2软件设计模块图 (9) 3.3主程序流程图 (10) 3.4子程序流程图 (11) 3.4.1 恒温控制子程序流程图 (11) 3.4.2 flag标志设置子程序流程图 (12) 3.4.3温度设置子程序流程图 (13) 3.4.4温度读取函数流程图 (14) 3.4.5均值滤波程序流程图 (15) 3.4.6显示函数程序流程图 (16) 4 调试分析 (16)

毕业设计基于stm32的智能小车设计说明

摘要 本次试验主要分析了基于STM32F103微处理器的智能小车控制系统的系统设计过程。此智能系统的组成主要包括STM32F103控制器、电机驱动电路、红外探测电路、超声波避障电路。本次试验采用STM32F103微处理器为核心芯片,利用PWM技术对速度以及舵机转向进行控制,循迹模块进行黑白检测,避障模块进行障碍物检测并避障功能,其他外围扩展电路实现系统整体功能。小车在运动时,避障程序优先于循迹程序,用超声波避障电路进行测距并避障,在超声波模块下我们使用舵机来控制超声波的发射方向,用红外探测电路实现小车循迹功能。在硬件设计的基础上提出了实现电机控制功能、智能小车简单循迹和避障功能的软件设计方案,并在STM32集成开发环境Keil下编写了相应的控制程序,并使用mcuisp软件进行程序下载。 关键词:stm32;红外探测;超声波避障;PWM;电机控制

Abstract This experiment mainly analyzes the control system of smart car based on microprocessor STM32F103 system design process. The composition of the intelligent system mainly including STM32F103 controller, motor drive circuit, infrared detection circuit, circuit of ultrasonic obstacle avoidance. This experiment adopts STM32F103 microprocessor as the core chip, using PWM technique to control speed and steering gear steering, tracking module is used to detect the black and white, obstacle avoidance module for obstacle detection and obstacle avoidance function, other peripheral extended circuit to realize the whole system function. When the car is moving, obstacle avoidance program prior to tracking, using ultrasonic ranging and obstacle avoidance obstacle avoidance circuit, we use steering gear under ultrasonic module to control the emission direction of ultrasonic, infrared detection circuit is used to implement the car tracking function. On the basis of the hardware design is proposed for motor control function, simple intelligent car tracking and obstacle avoidance function of software design, and in the STM32 integrated development environment under the Keil. Write the corresponding control program, and use McUisp program download software. Keywords:STM32;Infrared detection;Ultrasonic obstacle avoidance;PWM;Motor control

基于STM32F103的恒温系统的设计.docx

. 中国矿业大学计算机学院2013级本科生课程报告 课程名称信科专业综合实践 报告时间2016.09.20 学生姓名张谊坤 学号08133367 专业电子信息科学与技术 任课教师王凯

任课教师评语 任课教师评语(①对课程基础理论的掌握;②对课程知识应用能力的评价;③对课程报告相关实验、作品、软件等成果的评价;④课程学习态度和上课纪律;⑤课程成果和报告工作量;⑥总体评价和成绩;⑦存在问题等): 成绩:任课教师签字: 年月日

摘要 针对目前温度控制在生产生活中被广泛应用,而传统的温度控制系统是由功能繁杂的大量分离器件构成,为了节约成本、提高系统的可靠性,本文设计了一种基于 STM32F103T6 的温度控制系统。本设计是基于 DS18B20 的温度控制系统,以STM32F103ZET6 为控制系统核心,通过嵌入式系统设计实现对温度的显示和控制功能。 在该系统中,为了减小干扰的影响,用均值滤波算法对采样数据进行处理之后再进行温度 判定等一系列操作的依据。设计中,基本上实现了该系统的功能,通过 DS18B20 采集温度数据,使用 LCD 屏幕来显示相关的信息,能够通过加热和降温将温度控制在恒定的范围内,并可以手动设置恒温范围,温度超出限制后会有声光报警。 关键词: STM32F103,均值滤波,恒温控制,DS18B20

. 目录 1 绪论................................................................................................................................................................................. 1.1 选题的背景及意义 (1) 1.2 设计思想................................................................................................................................................................. 1.3 实现的功能 (2) 2 硬件设计........................................................................................................................................................................ 2.1 硬件平台................................................................................................................................................................. 2.2 硬件设计模块图 (3) 2.3 温度传感器DS18B20 (4) 2.4 LCD 屏幕 (8) 2.5 DC 5V 散热风扇 (10) 2.6 加热片 (10) 3 软件设计 (11) 3.1 软件平台 (11) 3.2 软件设计模块图 (12) 3.3 主程序流程图 (12) 3.4 子程序流程图 (14) 3.4.1 恒温控制子程序流程图 (14) 3.4.2 flag 标志设置子程序流程图 (15) 3.4.3 温度设置子程序流程图 (16) 3.4.4 温度读取函数流程图 (17) 3.4.5 均值滤波程序流程图 (18) 3.4.6 显示函数程序流程图 (19) 4 调试分析 (19) 4.1 硬件调试 (20) 4.2 软件测试 (20) 4.3 功能实现分析 (21) 5 实验总结 (21) 参考文献 (23)

基于stm32的智能家居项目设计报告

项目设计报告

智能家居监控系统的总体设计框图如下图所示。该系统采用的主要模块是STM32F407ZE系列的单片机,负责对信息的接收和处理,将各个模块收集到的模拟信号转换成数字信号,以便OLED屏显示出来。而智能家居监控系统需要实现监控温湿度、光照强度、密码开锁等信号并及时的做出回应。本课程设计了一款智能家居环境监测报警系统,能够实时监测火灾、光照强度等温湿度异常、外人闯入等危险状态。 图1 智能家居系统框图 该智能家居监控系统由超声波模块、温湿度模块、光敏电阻、OLED 显示模块、蜂鸣器报警模块、LED显示以及按键输入模块组成基本的检测外设,由STM32F407ZE来对各个外设进行控制。其中超声波模块、温湿度模块和光敏电阻将检测到的一些外界环境因素的变化,转换成相应的电压变化,这便有利于在OLED显示屏等观察到相应的现象。

本系统是典型的嵌入式技术应用于测控系统,以嵌入式为开发平台, 系统以32位单片机STM32F407ZE为主控制器对各传感器数据进行采集, 经过分析后去控制各执行设备。 硬件电路部分为:微控制器最小系统电路、数据采集电路(光敏电 路、温湿度传感器、超声波模块)、输出控制电路(OLED显示屏、蜂鸣器、 发光二极管)组成。 图2 LED电路图 其发光二极管一段连接3.3V的电源,而另一端则连接着 STM32F407ZE单片机的GPIO口,同时可以看出当外设给一个低电平时,发光二极管则被点亮。 图3 按键电路 但按键按下时,则输出一个低电位;当按键不按时,则输出高电位。 图4 蜂鸣器电路

当输入一个高电平时,三极管将处于导通状态,此时蜂鸣器将正常工作;而当输入一个低电平时,三极管将处于截止状态,无法正常工作。 图5 串口电路图 串口的RXD和TXD分别连接STM32F407ZE单片机的U1_TX和U1_RX,分别表示数据的接收和传输;而串口UART1的3、4口连接A—A口线的两端,用于对数据的传输。 图6 光敏传感器电路图 其原理利用的是光敏二级管对光照强度的敏感性,通过光照强度的不同,其光敏二极管的导电率也会发生相应的改变,从而使R24的电压值发生改变,从而导致输出电压的大小发生改变。 软件设计:主要控制光敏电阻电压采集处理与控制部分、温度采集处理与控制部分、霍尔传感器报警部分和辅助指示部分。数模转换(ADC)外设用于将连续的模拟电压转换成离散的数字量。ADC模块含有一个可编程的序列发生器,它可在无需控制器的干扰的情况下对多个模拟输入进行采样。同时我们采用I2C模块,I2C为两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL 构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC 之间进行双向传送,高速IIC总线一般可达400kbps以上。同时通信方式为半双工。

基于STM32的MP3设计说明

摘要 本篇论文主要介绍的一款基于Crotex3核设计的的MP3播放器。采用STM32F103A系列微处理器作为播放器的CPU,采用由凌通公司生产的DS250-10芯片作为音乐解码芯片。利用MPU6050 运动处理模块收集MP3播放器的加速度、空间位置等运动信息,用以控制MP3播放器的播放/暂停、上一首/下一首等功能的实现。通过BQ2057电源管理芯片对锂电池进行充电管理。音量是由光敏电阻收集到的环境光强信息控制。无需按键,用户只需要通过改变播放器的空间位置,就可以控制播放器的功能实现。增加了操作的趣味性,提高了用户的操作体验。使得在如今新鲜招数层出不穷的MP3市场更有竞争力。 关键词:MP3播放器,加速度,环境光感应,STM32,DS205-A103

Abstract This paper describes the design of a kernel-based Crotex3of the MP3player. Using STM32F103A Series microprocessor as the player of the CPU, using the Ling Tong produced DS250-10chip as the music decoding chip. Use MPU6050motion processing module collects acceleration MP3player, sports such as spatial location information, to control the MP3player, play / pause, previous / next track functions such implementation. By BQ2057power management chip for lithium battery charge management. V olume is a photoresistor light collected information control environment. No buttons, the user only needs by changing the spatial position of the player, the player can control the realization of the function. Increases operational interest, improving the user's operating experience. Making fresh tricks emerging in today's MP3market more competitive. Keywords:MP3player, accelerometer, ambient light sensor, STM32, DS205-A103

基于STM32的多功能画板设计

电子技术综合实践报告 设计题目:基于STM32的多功能画板设计 专业: 班级学号: 学生姓名: 指导教师: 设计时间:

教师评语: 成绩: 1

摘要 Cortex-M3是ARM公司为要求高性(1.25DhrystoneMIPS/MHz)、低成本、低功耗的嵌入式应用专门设计的内核。STM32 系列产品得益于Cortex-M3在架构上进行的多项改进,包括提升性能的同时又提高了代码密度的Thumb-2指令集和大幅度提高中断响应的紧耦合嵌套向量中断控制器,所有新功能都同时具有业界最优的功耗水平。 本系统是基于 Cortex-M3 内核的 STM32 微控制器的画板设计,在硬件方面主要有最小系统板和TFTLCD液晶屏,在软件方 面主要有TFTLCD液晶屏的驱动,触摸功能的驱动,及滤波算法 设计。 整个设计过程包括电子系统的设计技术及调试技术,包括需 求分析,原理图的绘制,pcb 板的绘制,制板,器件采购,安装,焊接,硬件调试,软件模块编写,软件模块测试,系统整体测试等整个开发调试过程。 关键字:STM32,TFTLCD液晶屏,画板 2

目录 1.系统描述 (4) 1.1综述 (4) 1.2系统框图 (5) 1.3功能实现 (5) 2.硬件设计 (6) 2.1总体框架 (6) 2.2STM32微控制器 (7) 2.2.1芯片介绍 (7) 2.2.2管脚图 (7) 2.2.3电路原理图 (8) 2.2.3.1STM32外围电路 (8) 2.2.3.2按键 (8) 2.3液晶屏 (9) 2.3.1TFT彩屏简介 (9) 2.3.2原理图 (9) 3.软件设计 (10) 3.1系统流程图 (10) 3.2主要函数介绍 (12) 3.2.1主函数 (12) 3.2.2触摸屏函数介绍 (14) 3.2.3LCD函数介绍 (15) 4. 开发与测试 (16) 4.1开发环境 (16) 4.1.1硬件设备 (16) 4.1.2软件环境 (16) 4.2开发步骤 (16) 4.2.1需求分析 (16) 4.2.2芯片选择 (17) 4.2.3电路图设计 (17) 4.2.4系统总体设计与测试 (17) 4.3成果展示 (17) 5.心得体会 (18) 6.参考文献 (19) 3

基于STM32的运动控制器设计

基于STM32的运动控制器设计 指导教师梁维源 摘要 运动控制器是现在社会的主流发展,不管是现在还是将来都会有重要的运用。本文运用STM32输出PWM波对电机进行控制使他们能分别沿着X轴和Y轴以及Z轴移动,STM32发送指令,由TB6560驱动芯片驱动进电机,在图纸上实现绘画,定位,转孔。选用STM32芯片作为控制核心,通过控制步进电机来控制机器臂,带动X轴和Y轴以及Z轴进行平面画图。该运动控制器具有精度高、操作方便、速度快、低成本等特点。 关键词:运动控制器;STM32;步进电机;TB6560

Based on the STM32 motion controller design Electronic information engineering specialty level 2011 jiang shijian Supervisor Liang Weiyuan Abstract The motion controller is now the mainstream of the development of society, both now and in the future will have important applications. Great defense and industrial applications as well as in life. In this paper, the output PWM wave STM32 motor control so that they can along the X-axis and Y-axis and Z-axis movement, STM32 send commands respectively, driven by a stepping motor driver chip TB6560 realize painting, positioning, turn the hole in the drawings. The program makes the selection STM32 chip stepper motor control system by controlling the stepper motor to control the robotic arm from the drive to the X and Y and Z axis plane drawing. The motion controller with high precision, easy operation, fast, low cost. Has great development prospects. Keywords: Movement Control System, STM32,Stepping motor, TB6560

相关主题
文本预览
相关文档 最新文档