STM32实验报告
基于stm32单片机的步进电机实验报告

基于stm32单片机的步进电机实验报告步进电机是一种将电脑控制信号转换为机械运动的设备,常用于打印机、数码相机和汽车电子等领域。
本实验使用STM32单片机控制步进电机,主要目的是通过编程实现步进电机的旋转控制。
首先,我们需要了解步进电机的基本原理。
步进电机是一种能够按照一定步长精确旋转的电机。
它由定子和转子两部分组成,通过改变定子和转子的电流,使转子按照一定的角度进行旋转。
在本实验中,我们选择了一种四相八拍步进电机。
该电机有四个相位,即A、B、C、D相。
每个相位都有两个状态:正常(HIGH)和反向(LOW)。
通过改变相位的状态,可以控制步进电机的旋转。
我们使用STM32单片机作为控制器,通过编程实现对步进电机的控制。
首先,我们需要配置STM32的GPIO口为输出模式。
然后,编写程序通过改变GPIO口的状态来控制步进电机的旋转。
具体来说,我们将A、B、C、D相分别连接到STM32的四个GPIO口,设置为输出模式。
然后,通过改变GPIO口输出的电平状态,可以控制相位的状态。
为了方便控制,我们可以定义一个数组,将表示不同状态的四个元素存储起来。
通过循环控制数组中的元素,可以实现步进电机的旋转。
在实验中,我们通过实时改变数组中元素的值,可以实现不同的旋转效果。
例如,我们可以将数组逐个循环左移或右移,实现步进电机的正转或反转。
在实验过程中,我们可以观察步进电机的旋转情况,并根据需要对程序进行修改和优化。
可以通过改变步进电机的旋转速度或步进角度,来实现更加精确的控制。
总结起来,通过本次实验,我们了解了步进电机的基本原理,并通过STM32单片机控制步进电机的旋转。
通过编写程序改变GPIO口的状态,我们可以实现步进电机的正转、反转和精确控制。
这对于理解和应用步进电机技术具有重要意义。
STM32实验-GPIO输出-流水灯实验报告

课程实验报告学院:专业: 2018年10月18日姓名学号班级指导老师课程名称嵌入式系统原理与应用实验成绩实验名称GPIO输出-流水灯1.实验目的通过一个经典的跑马灯程序,了解 STM32F1的IO口作为输出使用的方法。
通过代码控制开发板上的4个 LED灯交替闪烁,实现类似跑马灯的效果。
2.实验内容工程文件建立、程序的调试,编译、jlink驱动的安装与配置、程序下载、实验结果验证。
3.实验环境Windouws10 Keil uVision5 4.实验方法和步骤(含设计)(1)实验硬件连接图四个led灯如图连接到GPIO的6~9引脚上。
(2)软件分析使用到的GPIO端口需配置为输出模式,使用推挽(PP)模式输出,IO口速度为 50MHz。
(3)实验步骤①建立工程文件:导入程序运行需要的库,加入主程序,调试运行环境,使程序可以成功被编译和运行且没有错误和警告。
②安装JLINK驱动程序,点击下载按钮将程序烧写进开发板中。
③检查led灯是否逐一顺序点亮,能够通过调整程序使点亮顺序改变。
(4)原函数5.程序及测试结果6.实验分析与体会如果4个LED灯是与A口的PA1、PA2、PA3、PA4相连,将led.c文件中的“GPIOC”改为“GPIOA”,并将Pin_X改为对应的1~4脚。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9; GPIO_Init(GPIOC, &GPIO_InitStructure);GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);改为RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4; GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4);实验日期: 2018 年 10 月 18 日成绩评定教师签名:年月日Welcome To Download欢迎您的下载,资料仅供参考!。
stm32实训报告经验总结

stm32实训报告经验总结STM32实训报告经验总结一、引言在这次STM32实训中,我深入了解了微控制器的基本原理和操作,学会了使用Keil MDK-ARM软件进行编程,掌握了STM32的GPIO、串口、定时器等基本外设的使用。
通过实际操作,我对于嵌入式系统设计和开发有了更深刻的理解。
二、实训过程1. 基础知识学习:首先,我通过阅读教材和网上资料,学习了微控制器的基本概念、STM32的体系结构和外设特性。
我了解到,STM32是一款功能强大的32位ARM Cortex-M核微控制器,具有丰富的外设接口和强大的处理能力。
2. 开发环境搭建:我按照教程安装了Keil MDK-ARM软件,配置了开发环境。
Keil软件提供了完整的开发工具链,包括代码编辑、编译链接、调试和仿真等功能。
3. 硬件平台搭建:我使用STM32开发板搭建了硬件平台。
我熟悉了开发板的电路原理图和引脚配置,了解了各个外设接口的使用方法。
4. 编程实践:在理解了基本概念和操作方法后,我开始进行编程实践。
我编写了GPIO输入输出、串口通信、定时器中断等程序,通过实际操作掌握了STM32的基本外设使用。
5. 调试与优化:在编程过程中,我遇到了许多问题,通过查阅资料和反复调试,最终解决了问题。
我还对程序进行了优化,提高了程序的效率和稳定性。
三、实训收获通过这次实训,我掌握了STM32微控制器的开发流程和基本外设的使用方法。
我学会了使用Keil MDK-ARM软件进行编程和调试,了解了嵌入式系统设计和开发的实际操作过程。
同时,我在实践中遇到了许多问题,通过解决问题,我提高了解决问题的能力。
四、展望未来这次实训让我对嵌入式系统设计和开发有了更深刻的理解。
在未来的学习和工作中,我将继续深入学习嵌入式系统的相关知识,掌握更多的技能和方法。
同时,我将尝试将所学知识应用到实际项目中,提高自己的实践能力和工程经验。
水温控制系统stm32实验报告

水温控制系统stm32实验报告设计并制作一个水温自动控制系统,控制对象为1升水,容器为搪瓷器皿(其他容器也可)。
水温可以在一定范围内设定,并能实现在10℃-70℃量程范围内对每一点温度的自动控制,以保持设定的温度基本保持不变。
要求(1)可键盘设定控制温度值,并能用液晶显示,显示最小区分度为0.1℃;(2)可以测量并显示水的实际温度。
温度测量误差在+0.5℃内;(3)水温控制系统应具有全量程(10℃-70℃)内的升温、降温功能(降温可用半导体制冷片、升温用800W以内的电加热器);(4)在全量程内任意设定一个温度值(例如起始温度+15℃内),控制系统可以实现该给定温度的恒值自动控制。
控制的最大动态误差<+4℃,静态误差<+1℃,系统达到稳态的时间<15min(最少两个波动周期)。
人机交互模块的设计温度控制系统经常是用来保证温度的变化稳点或按照某种规律进行变化。
但是通常温度具有惯性大,滞后性严重的特点,所以很难建立很好的数学模型。
所以在本次实验中我们采用了性能高又经济的搭载ARM Cortex-M内核的STM32F429的单片机作为它的微控制处理器。
人机交互模块主要是有普通的按键和一块彩色液晶屏幕所组成。
该实验中采用的是模糊的PID 算法,完成对系统的设计。
温度检测模块的设计传统的测温元件有热电偶,热敏电阻还有一些输出模拟信号的温度传感器。
但这些元件都需要较多的外部元件的支持。
电路复杂,制作成本高。
因此在本次实验中我们采用了美国DALLAS半岛公司推出的一款改进型的智能温度传感器 DS18B20。
此温度传感器读数方便,测温范围广,测温准确,输出温度采用数字显示更加智能化。
温度检测模块是以DS18B20温度传感器作为核心,将测量的温度信号传递给STM32单片机芯片进行温度的实时检测,并通过数码管显示。
stm32电容测量仪实验报告

stm32电容测量仪实验报告
实验目的:
本实验旨在设计并实现一个基于STM32的电容测量仪,通过测量电容值来评估电容器的性能。
实验原理:
电容是一种存储电荷的元件,它由两个导体板之间的绝缘介质组成。
电容的大小与导体板之间的距离和绝缘介质的介电常数有关。
本实验采用了简单的充放电方法来测量电容值。
实验步骤:
1. 搭建电路:将待测电容器与STM32开发板相连,利用STM32的GPIO 口来控制充放电电路。
2. 设计程序:根据测量电容的原理,设计一个程序来控制充放电过程,并测量充电时间和放电时间。
3. 采集数据:通过程序获取充放电时间,并计算出电容值。
4. 显示结果:将测量得到的电容值通过串口或LCD显示出来,以便用户查看。
实验结果与分析:
经过多次实验,我们成功地测量了不同电容器的电容值。
实验结果表明,测量值与实际值之间存在一定的误差,这可能是由于电路中的电
阻和电感等元件的影响导致的。
因此,在实际应用中,我们需要对测量结果进行修正。
实验总结:
通过本实验,我们深入了解了电容测量的原理与方法,并成功地设计并实现了一个基于STM32的电容测量仪。
我们还发现了测量中可能存在的误差,并提出了对测量结果进行修正的建议。
这将有助于我们在实际应用中更准确地测量电容值,并评估电容器的性能。
展望:
在今后的研究中,我们可以进一步改进电容测量仪的设计,提高测量精度,并尝试应用更复杂的测量方法来提高测量效率。
另外,我们还可以将电容测量仪与其他传感器结合起来,构建一个多功能的电子测量系统,以满足不同应用领域的需求。
stm32 实验报告

stm32 实验报告STM32 实验报告一、引言STM32是一款由STMicroelectronics公司推出的32位单片机系列,具有高性能、低功耗和丰富的外设资源等特点。
本篇实验报告将介绍我在学习和实践STM32过程中的一些经验和成果。
二、实验目的本次实验的目的是通过使用STM32单片机,实现一个简单的温度监测系统。
通过该实验,我希望能够熟悉STM32的开发环境,掌握基本的硬件连接和编程方法,并能够成功运行一个简单的应用程序。
三、实验步骤1. 硬件连接:将STM32单片机与温度传感器、LCD显示屏等硬件设备连接起来。
确保连接正确,避免短路或接触不良的情况。
2. 开发环境搭建:下载并安装STM32CubeIDE,配置开发环境。
这是一个集成开发环境,支持STM32系列的开发和调试。
3. 编写代码:使用C语言编写一个简单的程序,实现温度传感器数据的读取和显示。
在编写代码过程中,需要熟悉STM32的寄存器和外设配置,以及相关的函数库。
4. 编译和烧录:将编写好的代码进行编译,生成可执行文件。
然后使用JTAG或SWD接口将可执行文件烧录到STM32单片机中。
5. 测试和调试:将STM32单片机连接到电源,观察LCD显示屏上是否正确显示当前的温度数值。
如果有错误或异常情况,需要进行调试和排查。
四、实验结果经过以上的实验步骤,我成功地实现了一个简单的温度监测系统。
在LCD显示屏上,我可以清晰地看到当前的温度数值,并且该数值能够实时更新。
通过与实际温度计的对比,我发现该系统的测量结果相当准确。
五、实验总结通过这次实验,我对STM32单片机的开发和应用有了更深入的了解。
我学会了如何搭建开发环境、编写代码、编译和烧录程序,并且成功实现了一个简单的应用。
在实验过程中,我也遇到了一些问题,但通过查阅资料和与同学的交流,我能够及时解决这些问题。
在今后的学习和实践中,我将进一步探索STM32单片机的功能和应用领域。
我希望能够深入研究更复杂的项目,并挖掘出更多的潜力。
stm32外部中断实验报告-STM32实例外部中断实验

stm32外部中断实验报告_STM32实例外部中断实验上⼀篇⽂章我们介绍了 STM32F10x 的中断,这次我们就来学习下外部中断。
本⽂中要实现的功能与按键实验⼀样,即通过按键控制LED,只不过这⾥采⽤外部中断⽅式进⾏控制。
学习时可以参考《STM32F10x 中⽂参考⼿册》-9 中断和事件章节。
外部中断介绍EXTI 简介STM32F10x 外部中断/事件控制器(EXTI)包含多达 20 个⽤于产⽣事件/中断请求的边沿检测器。
EXTI 的每根输⼊线都可单独进⾏配置,以选择类型(中断或事件)和相应的触发事件(上升沿触发、下降沿触发或边沿触发),还可独⽴地被屏蔽。
EXTI 结构框图EXTI 框图包含了 EXTI 最核⼼内容,掌握了此框图,对 EXTI 就有⼀个全局的把握,在编程的时候思路就⾮常清晰。
从图中可以看到,有很多信号线上都有标号 9 样的“20”字样,这个表⽰在控制器内部类似的信号线路有 20 个,这与 STM32F10x 的 EXTI 总共有20 个中断/事件线是吻合的。
因此我们只需要理解其中⼀个的原理,其他的 19个线路原理都是⼀样的。
EXTI 分为两⼤部分功能,⼀个产⽣中断,另⼀个产⽣事件,这两个功能从硬件上就有所差别,这个在框图中也有体现。
从图中标号 3 的位置处就分出了两条线路,⼀条是 3-4-5 ⽤于产⽣中断,另⼀条是 3-6-7-8⽤于产⽣事件。
下⾯我们就来介绍下这两条线路:(1)⾸先看下产⽣中断的这条线路(1-2-3-4-5)1.标号 1 为输⼊线,EXTI 控制器有 20 个中断/事件输⼊线,这些输⼊线可以通过寄存器设置为任意⼀个 GPIO,也可以是⼀些外设的事件,这部分内容我们会在后⾯专门讲解。
输⼊线⼀般是存在电平变化的信号。
2.边沿检测电路,EXTI 可以对触发⽅式进⾏选择,通过上升沿触发选择寄存器和下降沿触发选择寄存器对应位的设置来控制信号触发。
边沿检测电路以输⼊线作为信号输⼊端,如果检测到有边沿跳变就输出有效信号 1 给红⾊框 3 电路,否则输出⽆效信号 0。
嵌入式stm32实训报告

嵌入式stm32实训报告嵌入式STM32实训报告随着现代科技的不断发展,嵌入式系统已经成为了我们生活中不可或缺的一部分。
而STM32作为一款常见的嵌入式系统芯片,其应用范围也越来越广泛。
本次实训,我们学习了如何使用嵌入式STM32进行开发,下面我将对此进行总结和报告。
一、实训内容本次实训主要包括以下内容:1. 硬件环境搭建:使用Keil软件,连接STM32开发板,配置开发环境。
2. STM32开发基础:学习STM32芯片的基本原理,掌握芯片的寄存器操作和GPIO口的使用。
3. 外设驱动开发:学习各种外设的驱动开发,包括串口通信、定时器、PWM、ADC等。
4. 应用开发实例:通过实例演示,掌握如何将STM32应用于实际项目中,如LED灯控制、电机控制、温度检测等。
二、实训收获通过本次实训,我收获了以下几点:1. 掌握了嵌入式STM32的基本开发流程和方法,了解了硬件环境的搭建和开发环境的配置。
2. 学会了使用STM32的各种外设,并能够进行驱动开发和应用实例演示。
3. 提升了编程能力和调试能力,掌握了如何进行调试和排错。
4. 加深了对嵌入式系统的理解,了解了嵌入式系统在实际项目中的应用。
三、实训反思本次实训虽然取得了一定的成果,但也存在一些不足之处:1. 实训时间较短,内容较多,有些内容没有掌握的很熟练。
2. 实训中遇到一些问题,需要更加深入的了解和学习。
3. 在实际项目中,需要更加注重实际应用,了解项目需求和具体实现方法。
四、实训展望在今后的学习和实践中,我将继续加强对嵌入式STM32的学习和掌握,注重实际应用和项目开发,提高自己的编程和调试能力,不断完善自己的技术能力和实践能力。
结语:本次嵌入式STM32实训,让我对嵌入式系统有了更加深入的了解和认识,掌握了一些基本的开发方法和技巧,也了解了嵌入式系统在实际项目中的应用。
在今后的学习和实践中,我将继续加强对嵌入式STM32的学习和掌握,不断提升自己的技术能力和实践能力,为实现更高质量的项目开发做出自己的努力和贡献。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统课程设计实验报告题目基于STM32的LCD数字钟显示姓名刘意学号 **************** ___专业年级 12电科指导教师卢仕2015年 6 月 30日1.实验名称:基于STM32的LCD数字钟显示2.实验目的与要求:(1)掌握嵌入式程序设计流程。
熟悉并掌握软件的开发,如GPIO的端口配置,FSMC的编程,RA8875初始化等等。
(2)学习LCD与STM32的LCD的控制器的接口原理,掌握内置LCD 控制器驱动编写方法。
(3)编写程序实现电子时钟功能,通过实验系统的LCD将时间显示出来。
3.实验设备及原理:硬件:PC机一台STM32开发板一套软件:keil4原理:LCD显示器是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。
因此,LCD的驱动控制归于对每个液晶单元通断电的控制,每个液晶单元都对应着一个电极,对其通电,便可使用光线通过。
本次实验使用RA8875驱动LCD,采用FSMC模式向RA8875发送指令,读取状态和数据。
通过程序代码实现对TFTLCD的控制器RA8875驱动要求,从而达到TFT LCD 数字钟的显示。
4.实验步骤及内容:1.新建工程文件夹szz,并建立4个子文件夹,并复制粘贴库文件和驱动文件。
2.打开keil4,新建工程。
工程名为szz.芯片选取STM3210F103VC。
3.完成基础设置4. 添加LCD.H和LCD.C两个文件,并加入工程中,编写LCD.H文件.LCD.H:#ifndef __GLCD_H#define __GLCD_H#include "stm32f10x.h"/* LCD color */颜色定义#define White 0xFFFF#define Black 0x0000#define Grey 0xF7DE#define Blue 0x001F#define Blue2 0x051F#define Red 0xF800#define Magenta 0xF81F#define Green 0x07E0#define Cyan 0x7FFF#define Yellow 0xFFE0#define HZ_LIB 1#define ASCII_LIB 1#define RGB565CONVERT(red, green, blue) (int) (((red >> 3) << 11) | ((green >> 2) << 5) | (blue >> 3))/* Private function prototypes -----------------------------------------------*/void LCD_Initializtion(void);void LCD_Clear(uint16_t Color);uint16_t LCD_GetPoint(uint16_t Xpos,uint16_t Ypos);void LCD_SetPoint(uint16_t Xpos,uint16_t Ypos,uint16_t point);void LCD_DrawLine(int x1, int y1, int x2, int y2,uint16_tbkColor);void LCD_SetWindows(uint16_t xStart,uint16_t yStart,uint16_t xLong,uint16_t yLong);void LCD_DrawPicture(uint16_t StartX,uint16_t StartY,uint16_t EndX,uint16_t EndY);void GUI_Text(uint16_t Xpos, uint16_t Ypos, uint8_t *str,uint16_t Color, uint16_t bkColor);void PutChar(unsigned short Xpos,unsigned short Ypos,unsigned char c,unsigned short charColor,unsigned short bkColor); void PutChinese(uint16_t Xpos,uint16_t Ypos,uint8_t *str,uint16_t Color,uint16_t bkColor);void GUI_Chinese(uint16_t Xpos, uint16_t Ypos, uint8_t *str,uint16_t Color, uint16_t bkColor);#endifLCD.C:1.void delay_us (int n){int i=0,j=0;for(i=0;i<n;i++)for(j=0;j<36;j++);}void delay_ms (int n){int i=0;for(i=0;i<1000;i++)delay_us(n);}// 延迟2.字符插入static unsigned char const AsciiLib[95][16] = { {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00},/*" ",0*/ 。
void GetASCIICode(unsigned char* pBuffer,unsigned char ASCII) {memcpy(pBuffer,AsciiLib[(ASCII - 32)] ,16);}3.STM32端口设置static void LCD_CtrlLinesConfig(void){GPIO_InitTypeDef GPIO_InitStructure;/* Enable FSMC, GPIOD, GPIOE and AFIO clocks */RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE);/* PE.06, PE.07(D4), PE.08(D5), PE.09(D6), PE.10(D7), PE.11(D8), PE.12(D9),PE.13(D10), PE.14(D11), PE.15(D12) */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 |GPIO_Pin_15;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_Init(GPIOE, &GPIO_InitStructure);/* PD.00(D2), PD.01(D3), PD.04(RD), PD.5(WR), PD.7(CS), PD.8(D13), PD.9(D14),PD.10(D15) PD.14(D0) PD.15(D1) */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7 |GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_Init(GPIOD, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOD, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_SetBits(GPIOA,GPIO_Pin_8);delay_us(10);}4.FSMC设置5.LCD,LMD各项功能设置5.主程序1.显示设置char buffer[50]={0};LCD_Initializtion();button_init();exti_config();SysTick_Config(FCLK/OSFREQ);LCD_Clear(RGB565CONVERT(0xff, 0xff, 0xff));GUI_Text(20, 200, "WuHan Different Everyday", RGB565CONVERT(0xfa,0x80,0x72),RGB565CONVERT(0x00,0xff,0xff));GUI_Text(20, 100, "ly 2012221105200045", RGB565CONVERT(0xfa,0x80,0x72),RGB565CONVERT(0x00,0xff,0xff) );2.时钟设置ms++;if(ms>=99){ms=0;sec++;if(sec>=59){sec=0;min++;if(min>=59){min=0;hour++;if(hour>=23)hour=0;}}}secg=sec%10;secs=sec/10;ming=min%10;mins=min/10;hourg=hour%10;hours=hour/10;}3.调时设置void EXTI15_10_IRQHandler(void){if((EXTI_GetITStatus(EXTI_Line13)!=RESET)||(EXTI_GetITStatu s(EXTI_Line15)!=RESET)){if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)==0){if(min<59)min++;else{min=0;hour++;}}if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_15)==0){if(hour<23)hour++;elsehour=0;}EXTI_ClearITPendingBit(EXTI_Line13);EXTI_ClearITPendingBit(EXTI_Line15);}}4.整点图像while (1){if(min==0){if(min==0){switch(sec){case 0:case 1:case 2:LCD_DrawLine(50, 240, 200,240,RGB565CONVERT(0x00, 0x00, 0xff));LCD_DrawLine(50, 240, 50, 380,RGB565CONVERT(0x00, 0x00, 0xff));LCD_DrawLine(50, 380, 200, 380,RGB565CONVERT(0x00, 0x00, 0xff));LCD_DrawLine(200, 240, 200, 380,RGB565CONVERT(0x00, 0x00, 0xff));LCD_DrawLine(80,280, 100, 280,RGB565CONVERT(0x00, 0x00, 0xff));LCD_DrawLine(150, 280, 170, 280,RGB565CONVERT(0x00, 0x00, 0xff));LCD_DrawLine(110, 350, 140, 350,RGB565CONVERT(0x00, 0x00, 0xff));break;case 3: LCD_DrawLine(50, 240, 200, 240,RGB565CONVERT(0xff, 0xff, 0xff));LCD_DrawLine(50, 240, 50, 380,RGB565CONVERT(0xff, 0xff, 0xff));LCD_DrawLine(50, 380, 200,380,RGB565CONVERT(0xff, 0xff, 0xff));LCD_DrawLine(200, 240, 200, 380,RGB565CONVERT(0xff, 0xff, 0xff));LCD_DrawLine(80,280, 100, 280,RGB565CONVERT(0xff, 0xff, 0xff));LCD_DrawLine(150, 280, 170, 280,RGB565CONVERT(0xff, 0xff, 0xff));LCD_DrawLine(110, 350, 140, 350,RGB565CONVERT(0xff, 0xff, 0xff));break;5.实验总结LCD显示的应用是多功能且设置简单的,根据LCD.C中的各种定义与功能,主程序中能实现多种操作,如划线,设置窗口,颜色,英文字符,调整位置,插于按键控制,串口设置等等。