码迷,mamicode.com
首页 > 其他好文 > 详细

嵌入式第一次课

时间:2017-03-12 21:34:23      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:压缩   设置   系统   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!