stm32课程设计
- 格式:docx
- 大小:817.43 KB
- 文档页数:9
stm32照明系统课程设计一、课程目标知识目标:1. 理解STM32微控制器的基础知识,包括其内部结构、工作原理及编程方法。
2. 掌握照明系统的电路设计原理,了解不同类型照明元件的特性及应用。
3. 学习嵌入式系统设计流程,理解如何将STM32与照明系统相结合,实现智能控制。
技能目标:1. 能够运用C语言对STM32进行编程,实现对照明系统的开关、亮度调节等控制功能。
2. 能够分析并解决照明系统在实际应用中可能出现的问题,具备一定的故障排查和维修能力。
3. 培养学生的团队协作能力,通过项目实践,提高沟通、协调和解决问题的综合能力。
情感态度价值观目标:1. 激发学生对电子技术和嵌入式系统的学习兴趣,培养创新精神和实践能力。
2. 培养学生关注环保、节能理念,认识到智能照明系统在节能减排方面的重要性。
3. 增强学生的社会责任感,使他们认识到技术发展对社会进步的推动作用。
课程性质:本课程为实践性较强的课程,侧重于学生动手能力和实际操作能力的培养。
学生特点:学生具备一定的电子技术基础,对嵌入式系统有一定了解,但实际操作经验不足。
教学要求:注重理论与实践相结合,以项目为导向,引导学生主动探究,培养学生的创新能力和实践能力。
通过课程学习,使学生能够独立完成照明系统的设计、编程和调试工作。
二、教学内容1. STM32微控制器基础知识:包括STM32内部结构、工作原理、编程接口等,对应教材第二章内容。
2. 照明系统电路设计原理:介绍照明元件、电路拓扑及控制方法,对应教材第三章内容。
3. 嵌入式系统设计流程:讲解嵌入式系统设计步骤、开发工具及调试方法,对应教材第四章内容。
4. C语言编程实践:以STM32为平台,进行C语言编程实践,实现照明系统的控制功能,对应教材第五章内容。
5. 照明系统项目实践:分组进行项目实践,完成照明系统的设计、编程、调试和优化,对应教材第六章内容。
教学内容安排:第一周:STM32微控制器基础知识学习。
嵌入式系统stm32课程设计一、课程目标知识目标:1. 理解嵌入式系统基本概念,掌握STM32的硬件结构和编程环境。
2. 学会使用C语言进行STM32程序设计,理解中断、定时器等基本原理和应用。
3. 掌握嵌入式系统外围设备的使用,如LED、按键、串口等,并能进行简单的系统集成。
技能目标:1. 能够运用所学知识,设计并实现具有实际功能的嵌入式系统项目。
2. 培养学生的动手实践能力,提高问题解决能力和程序调试技巧。
3. 增强团队协作能力,通过项目实践,学会分工合作和沟通交流。
情感态度价值观目标:1. 培养学生对嵌入式系统的兴趣,激发学习热情,形成自主学习的习惯。
2. 树立正确的工程观念,注重实际应用,关注技术发展,提高创新意识。
3. 培养学生的责任心,使其认识到所学知识对社会和国家的贡献,树立远大理想。
课程性质:本课程为实践性较强的课程,结合理论知识和实际操作,培养学生的嵌入式系统设计能力。
学生特点:学生具备一定的电子技术基础和编程能力,对嵌入式系统有一定了解,但缺乏实际项目经验。
教学要求:结合课程特点和学生学习情况,注重理论与实践相结合,通过项目驱动,引导学生主动探究,提高解决问题的能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 嵌入式系统概述- 嵌入式系统的定义、特点与应用领域- STM32微控制器简介2. STM32硬件结构与编程环境- STM32的内部结构、外设接口- Keil MDK集成开发环境的使用3. STM32编程基础- C语言基础回顾- STM32程序框架与编译过程- 中断、定时器等基本原理及应用4. 外围设备使用- LED、按键、串口等外设的原理与编程- ADC、PWM等模拟外设的使用5. 嵌入式系统项目实践- 设计并实现具有实际功能的嵌入式系统项目- 项目分析与需求分析- 硬件电路设计与软件编程6. 课程总结与拓展- 课程知识梳理与巩固- 探讨嵌入式系统发展趋势与前沿技术教学内容安排与进度:第1-2周:嵌入式系统概述、STM32硬件结构与编程环境第3-4周:STM32编程基础第5-6周:外围设备使用第7-8周:嵌入式系统项目实践第9-10周:课程总结与拓展教学内容与教材关联性:本教学内容紧密结合教材,按照教材章节顺序进行教学,确保学生能够系统地掌握嵌入式系统STM32的知识点和技能。
stm32开发课程设计一、课程目标知识目标:1. 理解STM32的基本结构、功能及其在嵌入式系统中的应用;2. 掌握STM32的编程环境搭建,包括开发工具和软件的使用;3. 学会STM32的基本编程方法,包括寄存器操作、中断处理和定时器编程;4. 了解STM32的外围设备通信原理,如I2C、SPI、UART等;5. 能够阅读并理解STM32相关的技术手册和参考资料。
技能目标:1. 能够独立搭建STM32的开发环境,并进行基本的程序编写和调试;2. 运用所学知识,设计并实现简单的嵌入式项目,如温度传感器数据采集、LED控制等;3. 学会分析并解决STM32编程过程中遇到的问题,提高故障排查和问题解决能力;4. 培养团队协作能力,通过项目实践,学会与同伴共同分析、设计和调试程序。
情感态度价值观目标:1. 培养学生对嵌入式系统开发的兴趣,激发学生的学习热情;2. 培养学生的创新意识,敢于尝试新方法,勇于解决实际问题;3. 培养学生的责任心和敬业精神,养成良好的编程习惯;4. 强调实践与理论相结合,使学生认识到学习知识的重要性,提高学生的自我修养。
本课程针对高年级学生,结合STM32的特性和实际应用,注重知识与实践的结合,旨在培养学生的实际编程能力和嵌入式系统设计能力。
课程目标具体、可衡量,便于教学设计和评估。
通过本课程的学习,学生将能够掌握STM32的基本知识和技能,为今后的学习和工作打下坚实基础。
二、教学内容1. STM32基础知识和开发环境搭建- 介绍STM32微控制器的基本架构和功能特点;- 搭建STM32开发环境,包括硬件连接、软件安装及调试方法;- 学习使用STM32CubeMX工具进行硬件配置和代码生成。
2. STM32编程基础- 学习STM32的寄存器操作,理解内存映射和位带操作;- 掌握中断和异常处理机制,学会编写中断服务程序;- 学习定时器编程,理解时钟系统,实现精确延时和定时控制。
stm32毕业课程设计一、课程目标知识目标:1. 理解STM32的硬件结构、工作原理及其编程环境。
2. 学会使用C语言进行STM32的程序设计与开发。
3. 掌握STM32的外设接口及驱动程序编写,如GPIO、USART、ADC等。
4. 了解嵌入式系统设计的基本流程,具备初步的系统集成能力。
技能目标:1. 能够独立完成STM32的基础编程与调试。
2. 能够运用所学知识进行简单的嵌入式系统设计。
3. 通过课程设计,培养学生动手实践、问题解决和团队协作能力。
情感态度价值观目标:1. 激发学生对嵌入式系统开发的兴趣,培养其主动学习的态度。
2. 培养学生严谨的科学态度,注重实际操作中的细节和规范。
3. 引导学生认识技术发展对社会的重要性,增强其社会责任感。
课程性质:本课程为毕业设计课程,以实践为主,侧重于学生动手能力和实际应用能力的培养。
学生特点:高年级学生,已具备一定的电子技术、编程基础和嵌入式系统知识。
教学要求:结合课本内容,注重理论与实践相结合,引导学生通过实际操作掌握STM32的应用,提高其嵌入式系统设计能力。
将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. 理论知识:- STM32硬件架构及特性分析。
- 基于C语言的STM32编程基础。
- 嵌入式系统设计流程及方法。
2. 实践操作:- STM32开发环境搭建与使用。
- GPIO接口编程与控制。
- USART串口通信编程。
- ADC模数转换编程。
- 基于STM32的嵌入式系统设计与实现。
3. 教学大纲:- 第一周:STM32硬件架构及特性分析。
- 第二周:C语言编程基础回顾与巩固。
- 第三周:STM32开发环境搭建与使用。
- 第四周:GPIO接口编程与控制。
- 第五周:USART串口通信编程。
- 第六周:ADC模数转换编程。
- 第七周:嵌入式系统设计流程及方法。
- 第八周:基于STM32的嵌入式系统设计与实现。
教材章节关联:- 教材第1章:嵌入式系统概述。
stm32的课程设计一、课程目标知识目标:1. 掌握STM32的基本结构和原理,理解其内部硬件资源;2. 学会使用STM32的开发环境和编程语言,熟悉其编程框架;3. 学习掌握STM32的常用外设及其驱动程序的编写和调试;4. 了解嵌入式系统设计的基本原则,培养系统性思维。
技能目标:1. 能够运用C语言进行STM32程序设计,实现基础功能;2. 熟练运用STM32的开发工具和调试技巧,解决实际问题;3. 能够独立设计和实现基于STM32的简单嵌入式系统项目;4. 提高团队协作能力,学会与他人共同分析问题、解决问题。
情感态度价值观目标:1. 培养学生对嵌入式系统开发的兴趣,激发学习热情;2. 培养学生严谨、细心的编程习惯,提高代码质量;3. 增强学生的创新意识,鼓励尝试新方法解决问题;4. 培养学生的责任心,使其认识到技术对社会的重要影响。
课程性质:本课程为实践性较强的学科,注重理论联系实际,强调动手能力培养。
学生特点:学生具备一定的电子和编程基础,对嵌入式系统有一定了解,但实践经验不足。
教学要求:教师需结合课本内容,采用案例教学,引导学生动手实践,注重培养学生的实际操作能力和团队协作能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. STM32基本原理与结构- 介绍STM32微控制器的基本组成、性能特点;- 分析STM32的内部资源,如GPIO、中断、时钟等。
2. 开发环境与编程语言- 学习STM32开发环境搭建,使用Keil、IAR等集成开发环境;- 掌握C语言基础,理解嵌入式编程规范。
3. 常用外设及其驱动程序- 学习并实践UART、SPI、I2C等通信接口的编程;- 掌握定时器、ADC、PWM等外设的使用。
4. 嵌入式系统设计- 分析嵌入式系统设计流程,理解硬件与软件的协同设计;- 学习如何进行系统调试与优化。
5. 实践项目与案例分析- 完成基于STM32的简单项目,如温度传感器、智能小车等;- 分析经典案例,学习优秀编程技巧和设计理念。
stm32硬件设计课程设计一、课程目标知识目标:1. 理解STM32的基本结构和原理,掌握其硬件设计流程;2. 学会使用STM32的编程环境,掌握相关编程技巧;3. 了解STM32在不同应用场景下的硬件设计要点,培养解决实际问题的能力。
技能目标:1. 能够运用STM32进行简单的硬件设计和编程;2. 熟练使用STM32的开发工具,进行程序调试和优化;3. 能够分析并解决硬件设计过程中遇到的问题,提高实际操作能力。
情感态度价值观目标:1. 培养学生对电子技术和嵌入式系统的兴趣,激发创新精神;2. 培养学生团队合作意识,提高沟通与协作能力;3. 树立正确的价值观,认识到科技发展对国家和社会的重要性。
课程性质:本课程为实践性较强的课程,旨在让学生通过实际操作,掌握STM32硬件设计的基本知识和技能。
学生特点:学生具备一定的电子技术和编程基础,对嵌入式系统有一定了解,但实际操作能力有待提高。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践,培养学生解决实际问题的能力。
通过课程学习,使学生能够独立完成STM32硬件设计与编程任务。
二、教学内容1. STM32基本原理与结构:介绍STM32的内部架构、性能特点、工作原理等,为学生奠定基础理论。
- 教材章节:第一章,嵌入式系统概述;第二章,STM32微控制器概述。
2. STM32开发环境搭建:学习如何安装和使用STM32的开发工具,包括Keil、STM32CubeMX等。
- 教材章节:第三章,STM32开发环境搭建。
3. STM32编程基础:掌握STM32的编程语言(C语言),学习基本语法、程序结构和编程技巧。
- 教材章节:第四章,C语言基础;第五章,STM32编程基础。
4. STM32硬件设计:学习STM32硬件设计流程,包括电路设计、PCB布线、元件选型等。
- 教材章节:第六章,STM32硬件设计基础;第七章,电路设计与PCB布线。
5. STM32外围设备应用:学习如何使用STM32控制各种外围设备,如LED、LCD、传感器等。
STM32类的课程设计一、课程目标知识目标:1. 理解STM32单片机的硬件结构及其工作原理;2. 掌握STM32的编程环境搭建及基本编程方法;3. 学会使用STM32的外设进行扩展,如GPIO、ADC、PWM等;4. 了解STM32在嵌入式系统中的应用。
技能目标:1. 能够独立完成STM32单片机的程序设计与调试;2. 能够运用所学知识,实现简单的嵌入式项目;3. 培养学生的问题分析、解决能力以及团队协作能力;4. 提高学生的动手实践能力和创新能力。
情感态度价值观目标:1. 激发学生对电子技术及嵌入式系统的学习兴趣;2. 培养学生的耐心、细心和专注力,提高学习效率;3. 增强学生的团队合作意识,培养良好的沟通能力;4. 引导学生认识到所学知识在现实生活中的应用,提高学生的社会责任感。
课程性质:本课程为实践性较强的课程,注重理论知识与实际操作的结合。
学生特点:学生具备一定的电子技术基础和编程能力,对嵌入式系统有一定了解。
教学要求:教师需采用项目驱动的教学方法,引导学生主动参与课堂讨论与实践操作,注重培养学生的实际操作能力和创新能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. STM32单片机硬件结构:讲解STM32的内部结构、核心外设、时钟系统等,使学生对其硬件组成有全面了解。
教材章节:第一章《STM32简介与硬件结构》2. 开发环境搭建:介绍STM32的开发工具,如Keil、STM32CubeIDE等,指导学生搭建编程环境。
教材章节:第二章《STM32开发环境搭建》3. 基本编程方法:讲解C语言编程基础,以及如何对STM32进行编程,包括GPIO、中断、定时器等。
教材章节:第三章《STM32编程基础》4. 外设应用:学习STM32的外设使用,如ADC、PWM、串口、SPI、I2C 等,实现与外部设备的通信和控制。
教材章节:第四章《STM32外设应用》5. 实践项目:设计并实现一个基于STM32的嵌入式项目,如温度控制器、智能小车等,巩固所学知识。
stm32数字时钟课程设计一、课程目标知识目标:1. 学生能理解STM32的内部时钟结构和定时器工作原理;2. 学生能掌握利用STM32设计数字时钟的基本步骤和方法;3. 学生能了解数字时钟的显示原理,并掌握与STM32定时器相结合的编程技巧;4. 学生能解释数字时钟在实际应用中的重要性。
技能目标:1. 学生能运用C语言进行STM32定时器的编程;2. 学生能通过调试工具解决数字时钟编程中的问题;3. 学生能设计并实现一个具有基本功能的数字时钟,包括时、分、秒显示和闹钟功能;4. 学生能对所设计的数字时钟进行测试和优化。
情感态度价值观目标:1. 学生培养对电子制作的兴趣,增强实践操作的自信心;2. 学生培养团队协作意识,学会在项目中相互沟通、共同解决问题;3. 学生通过数字时钟设计,认识到技术与生活的紧密联系,激发创新意识;4. 学生培养严谨的科学态度,注重实验数据的准确性和程序的可维护性。
二、教学内容1. STM32内部时钟结构:介绍STM32的时钟树,讲解时钟源、时钟分频、时钟使能等概念,为学生设计数字时钟提供基础理论知识。
2. 定时器工作原理:详细讲解STM32定时器的工作原理,包括计数器、预分频器、自动重装载寄存器等组成部分,使学生了解定时器在数字时钟中的作用。
3. C语言编程:回顾与定时器编程相关的C语言知识,包括数据类型、运算符、控制语句等,为编写数字时钟程序打下基础。
4. 数字时钟设计步骤:按照以下步骤组织教学内容:a. 硬件设计:讲解如何使用STM32最小系统板,选择合适的显示屏和驱动芯片,连接电路;b. 软件设计:介绍定时器初始化、中断处理、时间计算等编程方法;c. 程序调试:指导学生使用调试工具,如Keil、ST-Link等,进行程序调试;d. 测试与优化:要求学生完成数字时钟设计后进行功能测试,并根据测试结果进行优化。
5. 教材章节关联:教学内容与教材第3章“STM32定时器”和第5章“STM32中断与事件”相关,结合实例进行讲解,使学生更好地掌握相关知识。
stm32mdk仿真课程设计一、教学目标本课程的教学目标是使学生掌握STM32MDK的基本仿真操作,理解并实践基于STM32微控制器的嵌入式系统设计流程。
具体目标如下:1.理解STM32微控制器的基本结构和特性。
2.熟悉STM32MDK仿真软件的界面和功能。
3.掌握基于C语言的STM32程序设计基础。
4.能够使用STM32MDK进行简单的仿真实验。
5.能够独立完成基于STM32的简单嵌入式系统设计。
6.能够对STM32程序进行调试和优化。
情感态度价值观目标:1.培养学生的创新意识和解决问题的能力。
2.培养学生对嵌入式系统设计和开发的兴趣。
3.培养学生的团队合作精神和自主学习能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.STM32微控制器简介:介绍STM32的基本结构和特性,包括CPU、内存、外设等。
2.STM32MDK仿真软件的使用:讲解STM32MDK的安装和启动,熟悉软件界面和基本功能,如代码编写、编译、下载和调试等。
3.C语言基础:回顾C语言的基本语法和编程技巧,特别强调与STM32编程相关的特点。
4.嵌入式系统设计流程:讲解从需求分析、硬件选型、软件设计到系统调试的整个设计流程。
5.常用外设编程:详细介绍如何使用STM32的常见外设,如GPIO、UART、SPI、I2C等。
6.综合案例实践:通过实际案例,让学生综合运用所学知识和技能,设计并实现一个简单的嵌入式系统。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式:1.讲授法:讲解基本概念、原理和编程技巧。
2.案例分析法:通过分析实际案例,让学生更好地理解和掌握知识。
3.实验法:让学生动手实践,培养实际操作能力。
4.小组讨论法:鼓励学生进行团队合作,共同解决问题。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《STM32微控制器原理与实践》2.参考书:《STM32编程指南》3.多媒体资料:PPT课件、教学视频等。
/*三个坐标系统的转换:触摸屏:column 240x_ _ _ _ _ _^ || || || || || | 320| || || || || || |(0,0) - - - - - -> y液晶显示字体及清屏等函数:column 240x (0,0) ----------->| || || || || || | 320| || || || || || |V- - - - - -y液晶显示图像:column 240X-----------A| || || || || || | 320| || || || || || |Y <- - - - - -(0,0)转换关系:Y字 = 320 - X触摸X字 = Y触摸X图像 = X触摸Y图像 = 240-Y触摸Y图像 = 240 - X字X图像 = 320 - Y字*/图像和字在屏幕的放置有一个方向相反。
“LCD触摸屏控制七彩呼吸灯”部分程序:#include "stm32f10x.h"#include "bsp_usart1.h"#include "bsp_ili9341_lcd.h"#include "bsp_sdfs_app.h"#include "bsp_bmp.h"#include "bsp_SysTick.h"#include "bsp_touch.h"#include "bsp_spi_flash.h"#include "bsp_led.h"#include "even_process.h"#include "bsp_breathing.h //被调用的H文件的包含.呼吸灯头文件int main(void){uint8_t k;/* 初始化LCD */LCD_Init();LCD_Clear(0, 0, 240, 320, BACKGROUND); //清屏/* 初始化sd卡文件系统,因为汉字的字库放在了sd卡里面 */Sd_fs_init();/* 系统定时器 1us 定时初始化 */SysTick_Init();/* 初始化LED */LED_GPIO_Config();/* 初始化外部FLASH */SPI_FLASH_Init(); //PA4/5/6/7/* 触摸屏IO和中断初始化 */Touch_Init(); //LCD触摸屏的配置用到模拟FLASHPE0/2/3/4, PD13#if 1SPI_FLASH_BufferRead(&cal_flag, 0, 1);if( cal_flag == 0x55 ){SPI_FLASH_BufferRead((void*)cal_p, 1, sizeof(cal_p));SPI_FLASH_CS_HIGH();for( k=0; k<6; k++ )printf("\r\n rx = %LF \r\n",cal_p[k]);}else{/* 等待触摸屏校正完毕 */while(Touch_Calibrate() !=0);}#elif 0/* 等待触摸屏校正完毕 */while(Touch_Calibrate() !=0);#endif/* 显示LED控制界面图片 */Lcd_show_bmp(100, 30,"/led/ui_window.bmp");//图像和字形坐标配置有一个方向相反Lcd_show_bmp(38, 184,"/led/ui_rb_button.bmp");Lcd_show_bmp(38, 95,"/led/ui_gb_button.bmp"); //显示关状态按钮Lcd_show_bmp(38, 11,"/led/ui_yb_button.bmp");TIM3_Breathing_Init();while(1){even_process();//灯的配置及变色}}void even_process(void){//char lcd_char[20];switch(even){case E_BUTTON1: //LED3if(red_button == S_OFF) //原来为关状态{Lcd_show_bmp(38, 184,"/led/ui_r_button.bmp");//显示开状态按钮red_button = S_ON;//更新状态标志}else //原来为开状态{Lcd_show_bmp(38, 184,"/led/ui_rb_button.bmp");//显示关状态按钮red_button = S_OFF;//更新状态标志}LED1_TOGGLE; //LED状态反转even = E_NULL;break;case E_BUTTON2: //LED1if(green_button == S_OFF) //原来为关状态{Lcd_show_bmp(38, 95,"/led/ui_g_button.bmp");//显示开状态按钮green_button = S_ON;//更新状态标志}else //原来为开状态{Lcd_show_bmp(38, 95,"/led/ui_gb_button.bmp");//显示关状态按钮green_button = S_OFF;//更新状态标志}LED2_TOGGLE;even = E_NULL;break;case E_BUTTON3: //LED2if(blue_button == S_OFF) //原来为关状态{Lcd_show_bmp(38, 11,"/led/ui_y_button.bmp");//显示开状态按钮blue_button = S_ON;//更新状态标志}else //原来为开状态{Lcd_show_bmp(38, 11,"/led/ui_yb_button.bmp");//显示关状态按钮blue_button = S_OFF;//更新状态标志}LED3_TOGGLE;even = E_NULL;break;case E_GETCHAR: //串口接收到数据if(recv_char == 0) //刚上电时{Lcd_GramScan( 2 );LCD_DispEnCh(140,20,"七彩呼吸灯",RED);}even = E_NULL;break;default:break;}}/*** @brief touch_process中断服务函数,根据触摸位置更新触摸标志* @param 无* @retval 无*/void touch_process(void){if(touch_flag == 1)/*如果按下了*/{if(Get_touch_point(&display, Read_2046_2(),&touch_para ) !=DISABLE) ///* 获取点的坐标 */{printf("\r\n x=%d,y=%d",display.x,display.y);if(display.x>=34 && display.x<=76) //控制条的范围{if(display.y>=15 && display.y<=46) // LED1{even = E_BUTTON1; //根据even随按压处电压的改变给even重新赋值,使得while(1)中的函数持续运行。
printf("\r\n LED1");}else if(display.y>=100 && display.y<=135) // LED2{even = E_BUTTON2;printf("\r\n LED2");}else if(display.y>=182 && display.y<=216) // LED3{even = E_BUTTON3;printf("\r\n LED3");}}}}}触屏按压外部中断函数:void EXTI4_IRQHandler(void){if(EXTI_GetITStatus(EXTI_Line4) != RESET){touch_flag=1;//静态变量touch_process();//触摸控制EXTI_ClearITPendingBit(EXTI_Line4);//清除标志位}}实验中用到外部中断EXTI4_IRQHandler实现触摸屏更新标志位,使得,WHILE里的函数持续运行,做到一有按键按下就触发外部中断,随时进入SWITCH语句case执行。
呼吸灯由定时器控制模仿实现,配合3个触屏按键的导通关断使能七彩灯的某一个部分显示不同颜色。
比如123,23,13,12,1,2,3七种。
TIM3_Breathing_Init();//定时器通道3——对应七彩灯的PB0。
改变分频可以调整亮的频率如:TIM_TimeBaseStructure.TIM_Prescaler = 5000; 0不分频,72MHZ灯闪烁很快,不会有呼吸的效果。
经过调整,觉得5000比较合适,此值可以适当调整。
设计中也可以调整此处得到警车,医务车的循环闪烁的效果(Prescaler = 40000)。
//设置预分频,此处最大值为2^16-1=65535/* 呼吸灯的40个亮度等级*/uint8_t indexWave[] = {1,1,2,2,3,4,6,8,10,14,19,25,33,44,59,80, 107,143,191,255,255,191,143,107,80,59,44,33,25,19,14,10,8,6,4,3,2,2,1,1};想法:利用七彩灯在3个按键的不同序列按压下会有固定的不同颜色(即不同序列的导通会使七彩灯有颜色的变化),以及利用呼吸灯在特定颜色(PB0产生绿色)下可以有由暗到亮,由亮到暗的性质,做出七彩呼吸灯。
在家中壁灯,夜色咖啡厅,玩具等有一定的发展前景。