STM开发环境建立实验报告
单片机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 实验报告一、引言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单片机的功能和应用领域。
我希望能够深入研究更复杂的项目,并挖掘出更多的潜力。
嵌入式开发环境搭建实验报告

嵌入式开发环境搭建实验报告实验报告:嵌入式开发环境搭建实验目的:本实验旨在通过搭建嵌入式开发环境,使学生对嵌入式系统的开发流程和环境有更深入的了解,并能够进行简单的嵌入式开发实践。
实验材料:1. 一台支持嵌入式开发的电脑2. 开发板(如Arduino、Raspberry Pi等)3. USB数据线4. 开发软件(如Arduino IDE、Raspbian等)5. 软件安装包(如果需要单独安装)实验步骤:1. 准备开发环境软件:根据使用的开发板选择相应的开发软件,并从官方网站下载安装包。
将安装包保存到电脑上指定的路径。
2. 安装开发软件:运行安装包,按照安装向导的提示进行软件的安装。
完成安装后,打开软件,检查是否安装成功。
3. 连接开发板:使用USB数据线将开发板连接到电脑上,并确保连接良好。
4. 配置开发环境:打开开发软件,进入设置或配置界面。
根据使用的开发板,选择正确的开发板型号,并设置串行端口。
保存设置。
5. 编写并调试代码:使用开发软件创建一个新的代码文件或打开一个现有的示例代码文件。
编写嵌入式程序代码,并进行调试与测试。
根据需要,可以使用调试器、仿真器等进行代码调试。
6. 上传程序到开发板:完成代码编写和调试后,将程序通过USB数据线上传(烧录)到开发板上。
等待上传过程完成。
7. 运行程序:断开USB数据线,将开发板与目标设备(如传感器、电机等)连接。
开启目标设备的电源,观察目标设备的动作与反应。
8. 实验结果分析:根据实验结果,对比设计预期和实际观测,分析代码的执行情况,查找问题并提出解决方案。
实验总结:通过本实验,我们成功搭建了嵌入式开发环境,并进行了基本的嵌入式开发实践。
通过编写代码、调试和运行程序,我们能够控制目标设备进行特定的操作。
在实验过程中,我们对嵌入式系统的开发流程和环境有了更深入的了解,并具备了一定的嵌入式开发能力。
需要注意的是,在实际的嵌入式开发中,可能还需要考虑更多的因素,如硬件接口、通讯协议、资源管理等。
STM32嵌入式系统实验报告模板

实验一使用固件函数库创建库函数模板一、实验目的1. 熟悉STM32的开发环境MDK Keil和仿真软件Proteus2. 熟悉STM32的固件库函数文件夹3. 掌握STM32固件库的使用方法二、实验内容1.开发自己的固件库函数模板三、预备知识掌握基于STM32固件库进行编程的方法。
四、实验设备1. 硬件环境配置计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上;实验设备:嵌入式开发平台,USB转串口数据线;2. 软件环境配置操作系统:Microsoft Windows XP Professional Service Pack 2;集成开发环境:Keil μVision5 IDE;五、实验过程1.创建本地文件夹和软件中的文件夹2. 对软件中的文件夹进行配置3.软件设计及代码(写一个简单的main函数)六、遇到的问题及解决方法实验二使用STM32固件库点亮LED灯一、实验目的1. 掌握STM32固件库的使用方法2. 掌握基于库函数模板的开发方法3. 掌握基于固件库进行GPIO端口编程的方法二、实验内容1. 使用Proteus软件设计点亮LED灯电路2. 基于固件库进行编程3. 基于固件库编程控制GPIO端口的输出,进而控制LED灯的显示状态三、预备知识掌握基于STM32固件库进行编程的方法;掌握Proteus软件的使用方法;掌握GPIO端口的组成、工作方式、编程方法。
四、实验设备1. 硬件环境配置计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上;实验设备:嵌入式开发平台,USB转串口数据线;2. 软件环境配置操作系统:Microsoft Windows XP Professional Service Pack 2;集成开发环境:Keil μVision5 IDE;五、实验过程1.LED灯电路设计2. GPIO初始化过程3.软件设计及代码六、遇到的问题及解决方法实验三按键检测实验一、实验目的1、掌握基于固件库进行GPIO端口编程的方法2、掌握按键检测方法二、实验内容1.设计按键检测电路2.基于固件库编程监测GPIO端口的输入,进而监测按键状态三、预备知识掌握基于STM32固件库进行编程的方法;掌握Proteus软件的使用方法;掌握GPIO端口的组成、工作方式、编程方法。
开发环境建立实验报告

一、实验目的1. 掌握开发环境的搭建流程。
2. 熟悉常用开发工具的使用方法。
3. 提高编程实践能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Java3. 开发工具:IntelliJ IDEA4. 数据库:MySQL5. 网络环境:稳定网络连接三、实验内容1. 开发环境搭建2. 编写Java程序3. 连接数据库4. 测试程序功能四、实验步骤1. 开发环境搭建(1)下载并安装Java开发包(JDK)1)访问Oracle官网,下载适用于Windows操作系统的JDK版本。
2)双击下载的安装包,按照提示进行安装。
3)安装完成后,在系统环境变量中配置JDK的bin目录。
(2)下载并安装IntelliJ IDEA1)访问IntelliJ IDEA官网,下载免费版或社区版。
2)双击下载的安装包,按照提示进行安装。
3)安装完成后,启动IntelliJ IDEA。
(3)配置MySQL数据库1)下载并安装MySQL数据库。
2)运行MySQL安装程序,按照提示进行安装。
3)安装完成后,配置MySQL环境变量。
2. 编写Java程序(1)创建Java项目1)在IntelliJ IDEA中,选择“File” -> “New” -> “Project”。
2)选择“Java” -> “Maven” -> “Next”。
3)输入项目名称、项目位置等信息,点击“Finish”。
(2)编写Java代码1)在项目目录下,创建一个名为“src”的文件夹。
2)在“src”文件夹下,创建一个名为“com”的包。
3)在“com”包下,创建一个名为“main”的文件夹。
4)在“main”文件夹下,创建一个名为“java”的文件夹。
5)在“java”文件夹下,创建一个名为“HelloWorld”的类。
6)在HelloWorld类中,编写以下代码:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```(3)运行Java程序1)在HelloWorld类上,右键点击“Run”。
stm32f407新建工程实验报告

stm32f407新建工程实验报告一、实验目的本次实验旨在通过使用STM32F407芯片,掌握使用STM32CubeMX软件生成基本工程框架的方法,了解工程的基本结构和组织方式,为后续的实验和开发工作打下坚实的基础。
二、实验原理STM32F407是一款基于ARM Cortex-M4架构的高性能微控制器,具有丰富的外设接口和强大的运算能力。
STM32CubeMX软件是一款由STMicroelectronics公司开发的软件,它可以为STM32微控制器生成工程模板,简化开发过程。
三、实验步骤1. 安装STM32CubeMX软件并打开软件,选择“New Project”。
2. 在“MCU/MPU选择”页面中,选择“STM32F407VG”。
3. 在“Pinout & Configuration”页面中,根据实际需求配置引脚和外设。
4. 在“Project”页面中,设置工程名称、保存路径等参数。
5. 点击“Project”页面中的“Project Settings”按钮,配置编译器和调试器等选项。
6. 点击“Project”页面中的“Project Options”按钮,选择生成代码的方式(如HAL库或LL库)。
7. 点击“Project”页面中的“Project Settings”按钮,配置其他选项,如代码生成风格、注释风格等。
8. 点击“Project”页面中的“Generate Code”按钮,生成工程代码。
9. 打开生成的工程代码,了解工程的基本结构和组织方式。
10. 在工程代码中添加自己的代码,实现所需功能。
11. 使用调试器进行调试,确保程序正常运行。
12. 对实验结果进行记录和分析,总结实验经验。
四、实验结果与分析通过本次实验,我们成功地使用STM32CubeMX软件生成了基于STM32F407的工程代码。
在工程代码中,我们找到了所需的源文件、头文件、库文件等,了解了工程的组织方式和结构。
stm32cubemx实验报告总结和心得

stm32cubemx实验报告总结和心得在进行STM32Cubemx实验的过程中,我深深感受到了这款软件的便利和强大。
STM32Cubemx是一款由STMicroelectronics公司开发的工具,它可以帮助开发人员快速生成基于STM32微控制器的初始化代码,极大地降低了开发的难度和工作量。
在本次实验中,我使用STM32Cubemx完成了一个简单的LED控制实验,并获得了一些宝贵的心得和体会。
首先,STM32Cubemx的界面简洁直观,操作相对简单。
在使用过程中,我发现该软件提供了丰富的代码生成选项,包括时钟配置、引脚配置、外设配置等等。
通过简单地点击和选择,我就能够轻松地生成所需的初始化代码,并将其导入到我的项目中。
其次,STM32Cubemx支持多种外设的配置和集成。
在实验中,我需要控制一个LED的亮灭,并通过按键来进行触发。
通过STM32Cubemx,我可以方便地配置GPIO引脚的输入输出,并将按键和LED与相应的引脚连接起来。
这种可视化的配置方式使得硬件和软件之间的连接变得更加简单和直观。
此外,STM32Cubemx还提供了一些实用的功能和资源。
在实验中,我遇到了一些问题,例如外设的中断处理和时钟配置等。
通过查阅STM32Cubemx的在线文档和社区论坛,我很快找到了解决方案,并成功地解决了这些问题。
这些资源的丰富性和及时性为我提供了很大的帮助,也让我的实验进展得更加顺利。
综上所述,STM32Cubemx是一款功能强大且易于使用的STM32微控制器代码生成工具。
在本次实验中,我通过使用STM32Cubemx完成了LED控制实验,并获得了许多宝贵的心得和体会。
我相信,在今后的学习和工作中,我将继续利用STM32Cubemx这一强大工具,提高我的开发效率和项目质量。
stm32cubenx创建工程模板实验报告

stm32cubenx创建工程模板实验报告
实验名称:stm32cubenx创建工程模板
实验目的:
1. 了解stm32cubenx工具的基本操作;
2. 掌握使用stm32cubenx创建工程模板的方法;
3. 熟悉工程模板的基本配置。
实验设备:
1. 电脑;
2. stm32cubenx开发环境。
实验步骤:
1. 打开stm32cubenx开发环境;
2. 点击"New Project"按钮创建新工程;
3. 在弹出的对话框中选择所需的微控制器型号;
4. 可以选择在局部文件系统或者克隆一个已有的工程来创建新工程;
5. 配置工程模板的基本信息,包括工程名称、保存路径等;
6. 点击"Finish"按钮来创建工程;
7. 在工程中配置所需的外设和中断;
8. 根据需要修改代码逻辑;
9. 编译和下载代码到微控制器进行实验。
实验结果:
成功创建了一个基于stm32cubenx的工程模板,并成功编译和下载了代码到目标微控制器。
实验总结:
通过这次实验,我了解了stm32cubenx工具的基本操作,并掌握了使用stm32cubenx创建工程模板的方法。
工程模板可以帮助我们快速搭建一个基础的工程框架,并配置所需的外设和中断。
在实验过程中,我还学会了如何修改代码逻辑、编译和下载代码到目标微控制器。
这些都对我进一步学习和使用stm32微控制器有着重要的帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S T M开发环境建立实
验报告
集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]
实验1 STM32开发环境建立
一、实验目的
1、掌握嵌入式开发环境的搭建。
2、熟悉MINI STM32开发板的基本使用。
二、实验内容
1、检查MINI STM32开发板的完整性。
(1)ALIENTEK MINI STM32开发板底板一个。
(2)ALIENTEK 寸 TFTLCD模块一个。
(3)5P MINI USB 数据线一条。
2、上电检测开发板能否正常工作,注意两个USB口的区别。
3、串口驱动的安装。
4、KEIL C软件的安装和使用。
5、JLINK驱动的安装。
6、跑马灯的实验。
三、实验设备
硬件: PC机一台
MINI STM32开发板一套
软件: RVMDK 一套
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;//推挽输出
GPIOD->ODR|=1<<2; //输出高
}
//延时nms
void delay_ms(u16 nms)
{
u32 temp;
SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit) SysTick->VAL =0x00; //清空计数器
SysTick->CTRL=0x01 ; //开始倒数
do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<16)));//等待时间到达
SysTick->CTRL=0x00; //关闭计数器
SysTick->VAL =0X00; //清空计数器
}
//初始化延迟函数
//SYSTICK的时钟固定为HCLK时钟的1/8
//SYSCLK:系统时钟
void delay_init(u8 SYSCLK)
{
SysTick->CTRL&=0xfffffffb;//bit2清空,选择外部时钟 HCLK/8 fac_us=SYSCLK/8;
fac_ms=(u16)fac_us*1000;
}
//系统时钟初始化函数
void Stm32_Clock_Init(u8 PLL)
{
unsigned char temp=0;
MYRCC_DeInit(); //复位并配置向量表
RCC->CR|=0x00010000; //外部高速时钟使能HSEON
while(!(RCC->CR>>17));//等待外部时钟就绪
RCC->CFGR=0X00000400; //APB1=DIV2;APB2=DIV1;AHB=DIV1;
PLL-=2;//抵消2个单位
RCC->CFGR|=PLL<<18; //设置PLL值 2~16
RCC->CFGR|=1<<16; //PLLSRC ON
FLASH->ACR|=0x32; //FLASH 2个延时周期
RCC->CR|=0x01000000; //PLLON
while(!(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);
}
}。