实验一 环境搭建
一、 实验目的
开发环境搭建,实现后面实验的运行
二、 实验内容
安装keil5和STM32CubeMX软件,配置开发环境。
三、 实验过程
准备的安装包
完成一下安装:
1、安装Keil ARM-MDK软件,并安装相关CPU的包;
2、安装STM32CubeMX软件,并安装相关CPU的包;
3、将开发板通过ST-Link连接至PC,安装适配器驱动;
简单的测试:结果正常。
四、 关键代码
无
实验二 点亮led
一、 实验目的
实现用stm32f407点亮led灯
二、 实验内容
调用系统定时函数,实现LED显示与蜂鸣器声音控制
三、 实验过程
1、新建项目
2、调用系统定时函数
找到TogglePin函数,复制粘贴到main函数中,并且设置参数,这里会自动补充参数。
3.实现实现LED显示与蜂鸣器声音控制
四、 关键代码
找到delay()函数,存放在main函数中并且设置参数为200
实现功能
实验三 按键扫描
一、实验目的
实现stm32f407的按键操作led灯和蜂鸣器
二、实验内容
按键扫描,并通过LED与蜂鸣器提示
三、实验过程
1、查看stm32原理图,对应的按键引脚及电路
2、新建工程(引脚设置并修改关键代码)
四、关键代码
在main.c中修改以下代码:
实验四 串口打印
一、实验目的
将目标信息通过串口打印出来
二、实验内容
实现printf函数,用于将信息打印至串口
三、实验过程
1、了解stm32串口原理,新建工程
2、编译烧写后,依次按下按键0,按键1,在串口调试助手中会显示相应的信息
四、关键代码
在usart.c中修改以下代码:
在main.c中修改以下代码:
实验五 看门狗(IWDG)
一、实验目的
定期查看芯片内部情况,一旦出错重启电路
二、实验内容
实现printf函数,用于将信息打印至串口
三、实验过程
1、查看串口、按键、LED灯对应引脚及电路分配
2、配置看门狗(本程序时钟为32kHz)
3、改写代码
4、串口显示结果
while循环中注释掉HAL_IWDG_Refresh(&hiwdg)语句,不刷新计数器。
四、关键代码
1、添加代码开启IWDG
2、在main函数中添加以下代码,每延时700ms刷新一次IWDG,重载计数器。
实验六 外部中断(EXTI)
一、实验目的
实现外部中断
二、实验内容
通过回调函数和外部按键实现外部中断
三、实验过程
1、配置相应的引脚,开启中断
2、操作stm32,结果如下:按下KEY2时,LED0的状态会翻转;按下KEY1时,LED1的状态会翻转;按下KEY0时,LED0和LED1的状态会翻转。
四、关键代码
在main.c中修改以下代码:
实验七 ADC读取模拟量
一、实验目的
实现数模转换
二、实验内容
在串口输出adc的值-读取片内温度
三、实验过程
1、在串口printf实验的前提下,配置ADC1外设选择温度传感器通道
2、串口显示读取mcu片内温度
四、关键代码
在main()函数前面声明变量保存AD采集的值
在main()函数while(1)循环里面添加函数声明变量保存AD采集的值
实验八 定时中断
一、实验目的
通过定时器实现定时产生中断
二、实验内容
实现在stm32f407上通过定时器中断控制LED闪烁
三、实验过程
1、新建工程,选择定时器和配置(时钟树为168mhz)
2、实验结果:ED9和LED10依次每隔1s状态翻转一次。
四、关键代码
1、添加定时器中断完成回调函数
2、使能定时器1
综合实验
一、实验目的
实现存储信息
二、实验内容
将配置信息存储至Flash
三、实验过程
1、查看Nand Flash存储结构
2、新建工程
在串口printf的工程的基础上修改,选择NCE3开启NAND Flash,数据地址线选择8 bits,Ready or Busy选择 NWAIT
3、实验结果
串口查看配置信息存储
四、关键代码
将配置信息存储至Flash
main.c