标签:压缩 设置 系统 driver 变量 循环 芯片 cts 头文件
嵌入式软件设计第1次实验报告
学号:140201225 姓名:刘曦洋
组别:第1组 实验地点:D19
一、实验目的:
1、熟悉KEIL_V5交叉编译链接开发软件的使用。
2、掌握使用ST固件库函数驱动GPIO管脚的方法。
二、实验内容:
编写程序,驱动STM32F4开发板的GPIO管脚的蜂鸣器,使其发出间断的声响。
三、实验过程描述及结果展示:
实验原理:
STM32F407芯片GPIO管脚与蜂鸣器连接电路图如下所示:
从图中可以看出:
PF8为高电平时蜂鸣器响。
实验过程:
首先根据环境配置流程配置好编译器。配置流程如下:
1.芯片选择:STM32F407ZG
2.C/C++ Define栏添加: STM32F40_41xxx,USE_STDPERIPH_DRIVER
3.添加头文件路径
4.Output栏Select Folder for Objects 选择OBJ目录
5.仿真器选择JLINK
6.烧写压缩算法选择:STM32F4xxx Flash 1M
分析原理结构:
要蜂鸣器响,则需要PF8管教高电平。所以利用如下算法实现这一功能:
1.创建GPIO变量
2.初始化时钟频率
3.使能GPIO时钟
4.初始化PF8管脚
5.设置普通输出
6.设置推挽输出
7.设置GPIO接口速度
8.配置下拉电阻
9.初始化GPIO变量
10.建立死循环,实现蜂鸣器循环响
程序代码:
GPIO_InitTypeDef GPIO_InitStructure;//定义GPIO结构体变量
delay_init(168);//初始化系统时钟168Mhz
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);//使能GPIO时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;//初始化GPIOF8管脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//GPIO口的速度
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;//配置为下拉电阻
GPIO_Init(GPIOF,&GPIO_InitStructure);
while(1){
GPIO_SetBits(GPIOF,GPIO_Pin_8);
delay_ms(600);
GPIO_ResetBits(GPIOF,GPIO_Pin_8);
delay_ms(200);
}
四、总结及实验心得:
总的来说,第一次实验做得很顺利,没有太大阻碍。第一次实验是要求弄响蜂鸣器,而蜂鸣器只受一个管教控制,所以很好实现。
初步认识
对硬件:第一次上课熟悉了自己接下来几周需要用到的硬件,也即是那块集成的板子。板子上面的器件很多,最醒目的就是那块显示器。想必以后的课程会慢慢深入,功能越做越多。
对软件:我们用C语言加上特定的编译器来实现功能。此次把蜂鸣器弄响只需要把PF8管脚给高电平即可。但是要给GPIO管脚配上高电平有一些前置参数要设置,例如系统时钟,使能时钟,GPIO口的速度等。设置完参数后初始化,再在死循环里实现功能。
标签:压缩 设置 系统 driver 变量 循环 芯片 cts 头文件
原文地址:http://www.cnblogs.com/bgd140201225/p/6539090.html