单片机STM实验报告

合集下载

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

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

基于stm32单片机的步进电机实验报告步进电机是一种将电脑控制信号转换为机械运动的设备,常用于打印机、数码相机和汽车电子等领域。

本实验使用STM32单片机控制步进电机,主要目的是通过编程实现步进电机的旋转控制。

首先,我们需要了解步进电机的基本原理。

步进电机是一种能够按照一定步长精确旋转的电机。

它由定子和转子两部分组成,通过改变定子和转子的电流,使转子按照一定的角度进行旋转。

在本实验中,我们选择了一种四相八拍步进电机。

该电机有四个相位,即A、B、C、D相。

每个相位都有两个状态:正常(HIGH)和反向(LOW)。

通过改变相位的状态,可以控制步进电机的旋转。

我们使用STM32单片机作为控制器,通过编程实现对步进电机的控制。

首先,我们需要配置STM32的GPIO口为输出模式。

然后,编写程序通过改变GPIO口的状态来控制步进电机的旋转。

具体来说,我们将A、B、C、D相分别连接到STM32的四个GPIO口,设置为输出模式。

然后,通过改变GPIO口输出的电平状态,可以控制相位的状态。

为了方便控制,我们可以定义一个数组,将表示不同状态的四个元素存储起来。

通过循环控制数组中的元素,可以实现步进电机的旋转。

在实验中,我们通过实时改变数组中元素的值,可以实现不同的旋转效果。

例如,我们可以将数组逐个循环左移或右移,实现步进电机的正转或反转。

在实验过程中,我们可以观察步进电机的旋转情况,并根据需要对程序进行修改和优化。

可以通过改变步进电机的旋转速度或步进角度,来实现更加精确的控制。

总结起来,通过本次实验,我们了解了步进电机的基本原理,并通过STM32单片机控制步进电机的旋转。

通过编写程序改变GPIO口的状态,我们可以实现步进电机的正转、反转和精确控制。

这对于理解和应用步进电机技术具有重要意义。

单片机STM32实验报告

单片机STM32实验报告

实验报告课程名称:单片微机原理与车载系统学生姓名蒋昭立班级电科1601学号***********指导教师易吉良成绩2018年12 月17 日实验1 GPIO实验1.1 实验目的1)熟悉MDK开发环境;2)掌握STM32单片机的GPIO使用方法。

1.2 实验设备1)一台装有Keil和串口调试软件的计算机;2)一套STM32F103开发板;3)STlink硬件仿真器。

1.3 基本实验内容1)熟悉MDK开发环境,参考《STM32F1开发指南(精英版)-寄存器版本_V1.0》第3章,安装MDK 并新建test工程,运行例程,在串口窗宽观察结果,并记录如下:从图片可以看出,例程运行成功,没有错误。

2)按键输入实验,《STM32F1开发指南(精英版)-寄存器版本_V1.0》第8章。

实现功能:3 个按钮(KEY_UP、KEY0和KEY1),来控制板上的2 个LED(DS0 和DS1)和蜂鸣器,其中KEY_UP 控制蜂鸣器,按一次叫,再按一次停;KEY1 控制DS1,按一次亮,再按一次灭;KEY0 则同时控制DS0 和DS1,按一次,他们的状态就翻转一次。

理解连续按概念及其实现代码。

参数mode 为0 的时候,KEY_Scan 函数将不支持连续按,扫描某个按键,该按键按下之后必须要松开,才能第二次触发,否则不会再响应这个按键,这样的好处就是可以防止按一次多次触发,而坏处就是在需要长按的时候比较不合适。

当mode 为1 的时候,KEY_Scan 函数将支持连续按,如果某个按键一直按下,则会一直返回这个按键的键值,这样可以方便的实现长按检测。

寄存器方法实现不支持连续按的关键代码,以及程序运行后的效果。

由程序可知,给KEY_Scan函数输入的值为0,为不支持连按模式。

寄存器方法实现支持连续按的关键代码,以及程序运行后的效果。

由程序可知,给KEY_Scan函数输入的值为1,为支持连按模式。

3)采用库函数方法实现按键输入实验,参考《STM32F1开发指南(精英版)-库函数版本_V1.0》第8章。

水温控制系统stm32实验报告

水温控制系统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单片机芯片进行温度的实时检测,并通过数码管显示。

51单片机实验报告(共五则)

51单片机实验报告(共五则)

51单片机实验报告(共五则)第一篇:51单片机实验报告51单片机实验报告实验一点亮流水灯实验现象 Led灯交替亮,间隔大约10ms。

实验代码#include 〈reg51、h> void Delay10ms(unsigned int c);voidmain(){)1(elihwﻩ{ ﻩP0= 0x00;Delay10ms(50);;ffx0 =0Pﻩﻩ;)05(sm01yaleDﻩ } } void Delay10ms(unsigned int c){unsigned char a,b;for(;c>0;c-—){)——b;0〉b;83=b(rofﻩ{ ﻩﻩfor(a=130;a〉0;a--);}ﻩﻩ}} 实验原理W W hi i le(1)表示一直循环。

循环体内首先将P0 得所有位都置于零,然后延时约5 5 0*10=500ms,接着 0 P0 位全置于 1 1,于就是 D LED 全亮了。

接着循环,直至关掉电源..延迟函数就是通过多个for r 循环实现得。

实验 2 流水灯(不运用库函数)实验现象起初 led 只有最右面得那一个不亮,半秒之后从右数第二个led也不亮了,直到最后一个也熄灭,然后 led 除最后一个都亮,接着上述过程 #includemain(){unsigned char LED;LED = 0xfe;while(1){ ﻩ;DEL = 0PﻩDelay10ms(50);00x0 == 0P(fiﻩ {;1〈〈 DEL = DELﻩ)ﻩ;efx0 = DELﻩ} ﻩ}ﻩ} void Delay10ms(unsigned int c){unsigned char a,b;for(;c>0;c-—){)—-b;0〉b;83=b(rofﻩ{ ﻩﻩﻩ;)--a;0>a;031=a(rofﻩ} ﻩ} ﻩ} 实验原理这里运用了C语言中得位运算符, , 位运算符左移, , 初始值得二进制为1111 1 110, 之后左移一次变成1111 1 100 0,当变成00000 0000 时通过 f if 语句重置 1 1 11 1 11110、延迟函数在第一个报告已经说出了,不再多说..实验 3 流水灯(库函数版)实验现象最开始还就是最右边得一个不亮,然后不亮得灯转移到最右边得第二个,此时第一个恢复亮度,这样依次循环.实验代码#include 〈reg51、h> #include 〈intrins、h〉void Delay10ms(unsigned int c); void main(void){unsigned char LED;;EFx0 = DELﻩ)1(elihwﻩ{ ﻩP0 = LED;;)05(sm01yaleDﻩﻩ;)1,DEL(_lorc_ = DELﻩ} ﻩ} void Delay10ms(unsigned in t c){unsigned chara, b;for(;c〉0;c——){ ﻩfor(b=38;b〉0;b—-){ ﻩﻩ;)-—a;0〉a;031=a(rofﻩ} ﻩ}}实验原理利用头文件中得函数,_cro l_(,), 可以比位操作符更方便得进行 2 2 进制得移位操作, , 比位操作符优越得就是,该函数空位补全时都就是用那个移位移除得数据, , 由此比前一个例子不需要f if 语句重置操作..数码管实验实验现象单个数码管按顺序显示0-9与 A-F。

stm32f103c8t6单片机课程设计总结

stm32f103c8t6单片机课程设计总结

stm32f103c8t6单片机课程设计总结
一、项目背景及目的
随着现代电子技术的快速发展,嵌入式系统已广泛应用于各个领域。

本课程设计选用STM32F103C8T6单片机作为核心控制器,旨在通过实际项目实践,掌握单片机的基本原理和应用技巧,提高自己的动手能力和创新能力。

二、硬件设计
1.单片机选型:选用STM32F103C8T6单片机,具有较高的性能和性价比,满足项目需求。

2.电路设计:主要包括电源电路、晶振电路、复位电路、接口电路等,确保单片机正常工作。

3.外设选型与连接:根据项目需求,选择合适的外设,如传感器、显示器、驱动电路等,并正确连接。

三、软件设计
1.编程语言:采用C语言进行编程,简洁高效,易于调试。

2.程序结构:分为初始化模块、数据采集模块、处理与控制模块、输出模块等,实现对整个系统的控制。

3.算法与应用:针对项目需求,设计相应的算法,如滤波、pid控制等,实现对系统的精确控制。

四、调试与优化
1.硬件调试:通过调试仪器,如示波器、万用表等,检查电路性能,确保各个电路模块正常工作。

2.软件调试:采用调试工具,如Keil、STM32库等,对程序进行调试与优化,提高系统性能。

3.系统优化:针对实际运行过程中出现的问题,对硬件和软件进行优化,提高系统稳定性和可靠性。

五、总结与展望
通过本次STM32F103C8T6单片机课程设计,掌握了单片机的基本原理和应用技巧,提高了自己的动手能力和创新能力。

单片机实验报告(相当不错,有具体实验结果分析哦)

单片机实验报告(相当不错,有具体实验结果分析哦)

学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 I/O 口输入、输出实验地点:基础实验大楼A311一、实验目的掌握单片机P1口、P3口的使用方法。

二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。

以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。

因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区)。

2学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:五、实验步骤1)系统各跳线器处在初始设置状态。

用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。

2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。

六、实验参考程序本实验参考程序:;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。

STM32开发环境建立实验报告

STM32开发环境建立实验报告

实验1 STM32开发环境建立一、实验目的1、掌握嵌入式开发环境的搭建。

2、熟悉MINI STM32开发板的基本使用。

二、实验内容1、检查MINI STM32开发板的完整性。

(1)ALIENTEK MINI STM32开发板底板一个。

(2)ALIENTEK 2.8寸TFTLCD模块一个。

(3)5P MINI USB 数据线一条。

2、上电检测开发板能否正常工作,注意两个USB口的区别。

3、串口驱动的安装。

4、KEIL C软件的安装和使用。

5、JLINK驱动的安装。

6、跑马灯的实验。

三、实验设备硬件:PC机一台MINI STM32开发板一套软件:RVMDK V3.8 一套Windows XP 一套四、实验步骤1、检查开发板完整、正常与否;2、安装开发软件及驱动,并调试;3、熟悉固件库,编写代码实现跑马灯功能。

1)给工程新增HARDWARE组程序里main()函数非常简单,先调用delay_init()初始化延时,接着就是调用LED_Init()来初始化GPIOA和GPIOD为输出。

最后在死循环里面实现LED0和LED1交替闪烁,间隔为300ms。

程序见附录2) 写好程序以后,就编译,看看有没有错误。

如果没有错误的话就下载到STM32板子上。

五、实验结果和实验总结实验最后实现了流水灯的运转。

这次实验主要是让我们了解一下STM32开发板的基本使用,大部分人都是初次接触这个开发板和KEILC软件,都对软件操作不太了解,希望通过这几次实验能够了解并熟练地使用这个软件,用这个软件来编程和完成一些功能的实现。

附录C语言代码:(主要功能的)//初始化端口void LED_Init(void){RCC->APB2ENR|=1<<2; //使能PORTA时钟RCC->APB2ENR|=1<<5; //使能PORTD时钟GPIOA->CRH&=0XFFFFFFF0;GPIOA->CRH|=0X00000003;//PA8 推挽输出GPIOA->ODR|=1<<8; //PA8 输出高GPIOD->CRL&=0XFFFFF0FF;GPIOD->CRL|=0X00000300;//PD.2推挽输出GPIOD->ODR|=1<<2; //PD.2输出高}//延时nmsvoid delay_ms(u16 nms){u32 temp;SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit) SysTick->V AL =0x00; //清空计数器SysTick->CTRL=0x01 ; //开始倒数do{temp=SysTick->CTRL;}while(temp&0x01&&!(temp&(1<<16)));//等待时间到达SysTick->CTRL=0x00; //关闭计数器SysTick->V AL =0X00; //清空计数器}//初始化延迟函数//SYSTICK的时钟固定为HCLK时钟的1/8//SYSCLK:系统时钟void delay_init(u8 SYSCLK){SysTick->CTRL&=0xfffffffb;//bit2清空,选择外部时钟HCLK/8fac_us=SYSCLK/8;fac_ms=(u16)fac_us*1000;}//系统时钟初始化函数void Stm32_Clock_Init(u8 PLL){unsigned char temp=0;MYRCC_DeInit(); //复位并配置向量表RCC->CR|=0x00010000; //外部高速时钟使能HSEONwhile(!(RCC->CR>>17));//等待外部时钟就绪RCC->CFGR=0X00000400; //APB1=DIV2;APB2=DIV1;AHB=DIV1; PLL-=2;//抵消2个单位RCC->CFGR|=PLL<<18; //设置PLL值2~16RCC->CFGR|=1<<16; //PLLSRC ONFLASH->ACR|=0x32; //FLASH 2个延时周期RCC->CR|=0x01000000; //PLLONwhile(!(RCC->CR>>25));//等待PLL锁定RCC->CFGR|=0x00000002;//PLL作为系统时钟while(temp!=0x02) //等待PLL作为系统时钟设置成功{temp=RCC->CFGR>>2;temp&=0x03;}}//主函数int main(void){Stm32_Clock_Init(9); //系统时钟设置delay_init(72); //延时初始化LED_Init(); //初始化与LED连接的硬件接口while(1){LED0=0;LED1=1;delay_ms(300); LED0=1;LED1=0;delay_ms(300); }}。

单片机实验报告(完整版)

单片机实验报告(完整版)

单片机原理与应用实验报告学院(部):专业:学生姓名:班级:学号:最终评定成绩:实验一存储器读写一、实验目的:1、掌握寄存器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等基本操作。

二、实验仪器设备1.PC机,1台2.WAVE软件开发系统三、实验内容及步骤:1、将下面的汇编程序输入到W A VE集成开发软件中ORG 0000HSJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08HMOV R1,#70HMOV DPTR,#2000HLOOP:MOVX A,@R1MOVX A,@DPTRINC R1INC ADJNZ R7,LOOPSJMP $END2、选择菜单“仿真器”→“仿真器设置”,按下图所示完成软件初始设置。

3、选择菜单“项目”下“编译”,编译通过后,选择“单步运行”,观察记录寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。

四、源程序源程序:ORG 0000H ;定义起始地址SJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08H ;给内部RAM的70H单元赋初值MOV R1,#70H ;使R1指向内部70H单元MOV DPTR,#2000H ;定义外部存储器开始单元LOOP:MOVX A,@R1 ;将R1所指向的70H的内容赋给AMOVX @DPTR,A;将A的内容赋给外部存储器单元INC R1 ;内部RAM地址加1INC DPTR ;外部存储器地址加1DJNZ R7,LOOP ;循环,直到RAM中70H~7FH;单元的内容全部相应赋给;外部2000H~2007H单元SJMP $END3、记录下程序单步运行时,寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。

五、仿真效果图实验二I/O端口操作一、实验目的:1、掌握I/O端口读写等基本汇编指令;2、掌握单片机最小系统硬件电路设计及仿真软件PROTEUS仿真、调试等基本操作方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机S T M实验报告 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】
实验报告
课程名称:单片微机原理与车载系统
学生姓名蒋昭立
班级电科1601
学号
指导教师易吉良
成绩
2018年 12 月 17 日
实验1 GPIO实验
实验目的
1)熟悉MDK开发环境;
2)掌握STM32单片机的GPIO使用方法。

实验设备
1)一台装有Keil和串口调试软件的计算机;
2)一套STM32F103开发板;
3)STlink硬件仿真器。

基本实验内容
1)熟悉MDK开发环境,参考《STM32F1开发指南(精英版)-寄存器版本》第3章,安装MDK并新建test工程,运行例程,在串口窗宽观察结果,并记录如下:从图片可以看出,例程运行成功,没有错误。

2)按键输入实验,《STM32F1开发指南(精英版)-寄存器版本》第8章。

实现功能: 3 个按钮(KEY_UP、KEY0和 KEY1),来控制板上的 2 个 LED(DS0 和 DS1)和蜂鸣器,其中 KEY_UP 控制蜂鸣器,按一次叫,再按一次停;KEY1 控制 DS1,按一次亮,再按一次灭;KEY0 则同时控制 DS0 和 DS1,按一次,他们的状态就翻转一次。

理解连续按概念及其实现代码。

参数 mode 为 0 的时候,KEY_Scan 函数将不支持连续按,扫描某个按键,该按键按下之后必须要松开,才能第二次触发,否则不会再响应这个按键,这样的好处就是可以防止按一次多次触发,而坏处就是在需要长按的时候比较不合适。

当 mode 为 1 的时候,KEY_Scan 函数将支持连续按,如果某个按键一直按下,则会一直返回这个按键的键值,这样可以方便的实现长按检测。

寄存器方法实现不支持连续按的关键代码,以及程序运行后的效果。

由程序可知,给KEY_Scan函数输入的值为0,为不支持连按模式。

寄存器方法实现支持连续按的关键代码,以及程序运行后的效果。

由程序可知,给KEY_Scan函数输入的值为1,为支持连按模式。

3)采用库函数方法实现按键输入实验,参考《STM32F1开发指南(精英版)-库函数版本》第8章。

库函数实现不支持连续按的关键代码,以及程序运行后的效果。

由程序可知,给KEY_Scan函数输入的值为0,为不支持连按模式。

库函数实现支持连续按的关键代码,以及程序运行后的效果。

由程序可知,给KEY_Scan函数输入的值为1,为支持连按模式。

创新实验内容
在实验步骤的基础上,通过修改代码,实现如下功能:
1)按下任意一个按键,蜂鸣器响x下后停止,然后DS0闪烁y次,DS1闪烁z次(x、y、z分别为你学号的末3位的数);
由我学号最后三位为119,所以蜂鸣器响1下后停止,然后DS0闪烁1次,DS1闪烁9次。

实验2 定时器实验
实验目的
1)理解定时器工作原理;
2)掌握STM32定时器的使用方法。

实验设备
1)一台装有Keil和串口调试软件的计算机;
2)一套STM32F103开发板;
3)STlink硬件仿真器。

基本实验内容
1)定时器中断实验,参考《STM32F1开发指南(精英版)-库函数版本》第13章,利用TIM3的定时器中断来控制DS1的翻转,在主函数用DS0的翻转来提示程序正在运行。

通过本例程,理解定时器中断原理,记录关键代码,写出定时器中断过程:一开始程序会一直执行死循环里面的代码,让LED0不断的亮然后熄灭来提示程序正在运行。

当计数器计数500ms之后,程序将跳出循环,去执行定时器里面的程序,实现DS1的反转
2)PWM输出实验,参考《STM32F1开发指南(精英版)-库函数版本》第14章,使用TIM3的通道2,把通道2重映射到PB5,产生PWM来控制DS0的亮度。

通过本例程,理解定时器PWM输出功能的使用方法,记录关键代码,写出STM32定时器PWM输出实现过程:
本实验通过重映射复用功能,将TIM3的通道2,把通道2重映射到PB5引脚,通过PWM的高低电平来控制DS0的亮度,电平为高电平时为亮,低电平时为熄灭,由主函数的程序可以看出,随着led0pwmval的数越大,PWM输出的占空比就越大,此时灯就越亮。

3)定时器输入捕获实验,参考《STM32F1开发指南(精英版)-库函数版本》第15章,利用TIM5的通道1(PA0)做输入捕获,捕获PA0上高电平的脉宽(用WK_UP按键输入高电平),通过串口打印高电平脉宽时间。

通过本例程,掌握定时器输入捕获实现过程,记录关键代码,并写出捕获输入实现原理:
创新实验内容
在实验步骤的基础上,通过修改代码,实现如下功能:
1)通过定时器相关功能实现控制蜂鸣器音调。

查找资料理解蜂鸣器发出不同音调的控制原理,按下某个按键,实现“多来米发梭拉西”的发声;
实验3 ADC及显示实验实验目的
1)理解ADC工作原理;
2)掌握STM32ADC的使用方法。

实验设备
1)一台装有Keil和串口调试软件的计算机;
2)一套STM32F103开发板;
3)STlink硬件仿真器。

基本实验内容
1)ADC实验,参考《STM32F1开发指南(精英版)-库函数版本》第22章,将利用STM32的ADC1通道1采样外部电压值(注意:输入电压不能超过!),并在TFTLCD 模块上显示出来。

ADC输入端口查找请参考《STM32F1开发指南(精英版)-库函数版本》第2章实验平台硬件资源详解。

通过本例程,理解ADC原理,记录关键代码,写出ADC采样实现过程:
通过Get_Adc_Average函数可以获得由通道1采样得到的采样值,然后经过转换计算输出我们需要的数字量电压值。

2)内部温度传感器实验,参考《STM32F1开发指南(精英版)-库函数版本》第23章,利用STM32F1的内部温度传感器读取温度值,并在TFTLCD模块上显示出来。

通过本例程,理解STM32内部温度传感器的使用方法,记录关键代码,写出读取内部温度传感器温度值的实现过程:
创新实验内容
在实验步骤的基础上,通过修改代码,实现如下功能:
1)用信号发生器输出正弦波、三角波信号(注意峰值小于!),接入某ADC通道,在TFTLCD上动态显示输入数据(也可以用图形方式显示);
在实现1)中功能的基础上,用TFTLCD显示温度,并显示自己的班级、学号、姓名等信息。

实验总结
通过这三次实验,我遇到了很多问题,比如,如何开始去新建一个工程,如何运行一个程序,如何下载到开发板中。

也学到了如何去解决这些问题,遇见软件问题也多不胜数,比如:调试文件系统程序时,程序编译没有错,仿真时程序总是跑飞到硬件中断。

这是因为初始化文件系统时,前面忘记调用设备选择函数,导致一些参数未能及时存储变量的值,致使程序跑飞,加入设备选择函数后,该现象解决。

这样的还有很多很多,问题越多,在与别人交流的过程中受益匪浅,别人的程序往往使人豁然开朗,通过这几次实验,我不仅加深了对单片机的了解,将理论很好的融入到实践中,同时也让我意识到自己的不足,无论是理论上还是遇到问题的处理能力还有待提高。

相关文档
最新文档