版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章实验2——GPIO与蜂鸣器实验2022GPIOandBuzzer
实
验
内
容Experimentcontent“
通过学习蜂鸣器电路原理图、STM32系统架构与存储组织,以及GPIO功能框图、寄存器和固件库函数,设计一个蜂鸣器驱动程序,并通过DbgCar调试组件测试。One
实
验
原
理Experimentalprinciple“Two
蜂鸣器简介蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。分类:1、按驱动方式的原理,可分为:有源蜂鸣器和无源蜂鸣器;2、按构造方式的不同,可分为:电磁式蜂鸣器和压电式蜂鸣器。有源蜂鸣器和无源蜂鸣器的区别:有源蜂鸣器内部带震荡源,所以只要通电就会鸣叫;而无源内部不带震荡源,用直流信号无法驱动,需要用2k-5kHz的方波去驱动。蜂鸣器电路原理
GPIO与蜂鸣器实验涉及的硬件包括一个蜂鸣器、与蜂鸣器串联的限流电阻R40。蜂鸣器通过1k电阻连接到STM32F103RCT6芯片的PD2引脚,如右图所示。
当PD2输出低电平时,三极管Q1不导通,蜂鸣器两端电压皆为3.3V,蜂鸣器静默。
当PD2输出高电平时,三极管Q1导通,由于1kΩ远大于10Ω,所以蜂鸣器两端形成约3.3V电压差,蜂鸣器鸣叫。
10Ω电阻存在的意义是为了方便测量蜂鸣器的电流,需要测量时可以将其从电路板上拆卸,接上电流表即可。●四个驱动单元:─Cortex-M3内核DCode总线(D-bus),和系统总线(S-bus)─通用DMA1和通用DMA2●四个被动单元─内部SRAM─内部闪存存储器─FSMC─AHB到APB的桥(AHB2APBx),它连接所有的APB设备STM32系统架构STM32存储器映射GPIO功能框图GPIO的8种工作模式:浮空输入上拉输入下拉输入模拟输入开漏输出推挽输出开漏复用输出推挽复用输出4输入+2输出+2复用输出,一共是8种模式,下面依次介绍八种模式的工作原理。1.浮空输入
图中的标记显示了数据传输通道,外部的电平信号通过左边编号1的I/O端口进入,再经过编号2的施密特触发器整形以后送入编号为3的“输入数据寄存器”,在“输入数据寄存器”的另一端(编号4),CPU通过内部的数据总线可以随时读出I/O端口的电平变化状态。2.上拉输入
与前面介绍的浮空输入模式相比,上拉输入仅仅是在数据通道上接入了一个上拉电阻,则该I/0引脚的默认电平状态为高电平,根据STM32的数据手册,这个上拉电阻阻值介于30K~50K之间。
同样,CPU可以随时在“输入数据寄存器”的另一端,通过内部的数据总线读出I/O端口的电平变化的状态。3.下拉输入
与上拉输入类似,下拉输入在数据通道上接入了一个下拉电阻,则该I/0引脚的默认电平状态为低电平。
同样,CPU可以随时在“输入数据寄存器”的另一端,通过内部的数据总线读出I/O端口的电平变化的状态。4.模拟输入输入信号从编号1的端口进入,不经过施密特触发器,而是从编号2的一端直接进入STM32微控制器的AD模块。
CPU不能通过“输入数据寄存器”读到IO端口电平的变化。5.开漏输出当CPU在编号1处通过“位设置/清除寄存器”或“输出数据寄存器”写入数据后,该数据位将通过编号2的输出控制电路传送到编号4的I/O端口。
如果CPU写入的是逻辑“1”,则编号3的N-MOS管将处于关闭状态,此时I/O端口的电平将由外部的上拉电阻决定。
如果CPU写入的是逻辑“0”,则编号3的N-MOS管将处于开启状态,此时I/O端口的电平被编号3的N-MOS管拉到了“地”的零电位。
在图中的上半部,施密特触发器处于开启状态,这意味着CPU可以在“输入数据寄存器”的另一端,随时可以监控I/O端口的状态。6.推挽输出推挽输出模式是在开漏输出模式的基础上,在“输出控制电路”之后,增加了一个P-MOS管。
当CPU输出逻辑“1”时,编号3处的P-MOS管导通,而下方的N-MOS管截止,达到输出高电平的目的。
当CPU输出逻辑“0”时,编号3处的P-MOS管截止,而下方的N-MOS管导通,达到输出低电平的目的。
在这个模式下,CPU仍然可以从“输入数据寄存器”读到该IO端口电压变化的信号。7.开漏复用输出开漏复用输出模式与开漏输出模式的工作原理基本相同。区别是编号2的输入源不同,在开漏复用输出模式下,编号2的输入源和复用功能的输出端相连。8.推挽复用输出推挽复用输出模式与推挽输出模式的工作原理基本相同。区别是编号2的输入源不同,在推挽复用输出模式下,编号2的输入源和复用功能的输出端相连。GPIO部分寄存器
STM32的每个GPIO端口都有7个寄存器,本实验涉及的GPIO寄存器包括2个32位端口配置寄存器(GPIOx_CRL,GPIOx_CRH)、1个32位端口输出数据寄存器(GPIOx_ODR)、1个32位端口位设置/清除寄存器(GPIOx_BSRR)、1个32位端口位清除寄存器(GPIOx_BRR)。GPIOx_ODR的结构、偏移地址和复位值
u32temp;temp=GPIOC->ODR;temp=(Temp&0xFFFFFFEF)|0x00000010;GPIOC->ODR=temp;地址偏移的计算以GPIOC→CRH和GPIOD→ODR绝对地址的计算过程为例:GPIO部分固件库函数
本实验涉及的GPIO固件库函数包括GPIO_Init、GPIO_WriteBit和GPIO_ReadOutputDataBit,这3个函数在stm32f10x_gpio.h文件中声明,在stm32f10x_gpio.c文件中实现。本书所涉及的固件库函数版本均为V3.5.0。
GPIO_WriteBit函数的描述:函数名GPIO_WriteBit函数原型voidGPIO_WriteBit(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin,BitActionBitVal)功能描述设置或清除指定数据端口位输入参数1GPIOx:x可以是A、B、C、D、E、F、G,用于选择GPIO外设输入参数2GPIO_Pin:待设置或清除的端口位输出参数3BitVal:该参数指定了待写入的值,可以有以下两个取值。Bit_RESET:清除数据端口位;Bit_SET:设置数据端口位输出参数无返回值void
例如,将PC4设置为低电平,代码如下:GPIO_WriteBit(GPIOC,GPIO_Pin_4,Bit_RESET);RCC部分寄存器
本实验涉及的RCC寄存器只有APB2外设时钟使能寄存器(RCC_APB2ENR)。RCC_APB2ENR的结构、偏移地址和复位值u32temp;temp=RCC->APB2ENR;temp=(Temp&0xFFFFFFEF)|0x00000010;RCC->APB2ENR=temp;RCC部分固件库函数本实验涉及的RCC固件库函数包括RCC_APB2PeriphClockCmd。该函数在stm32f10x_rcc.h文件中声明,在stm32f10x_rcc.c文件中实现。函数名RCC_APB2PeriphClockCmd函数原型voidRCC_APB2PeriphClockCmd(uint32_tRCC_APB2Periph,FunctionalStateNewState)功能描述使能或除能APB2外设时钟输入参数1RCC_APB2Periph:门控APB2外设时钟输入参数2NewState:指定外设时钟的新状态这个参数可以取ENABLE或DISABLE输出参数无返回值void
分别使能GPIOA、GPIOB和SPI1时钟,代码如下:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1,ENABLE);
RCC_APB2PeriphClockCmd函数的描述:步骤1:复制并编译原始工程 步骤2:添加BEEP文件对 步骤3:完善BEEP.h文件 步骤4:完善BEEP.c文件 步骤5:完善蜂鸣器驱动应用层步骤6:编译及下载验证实验步骤Experimentalsteps“Three实验步骤steps步骤1:复制并编译原始工程步骤2:添加BEEP文件对 步骤3:完善BEEP.h文件 步骤4:完善BEEP.c文件 步骤5:完善蜂鸣器驱动应用层步骤6:编译及下载验证本
章
任
务Tasksinthischapter“Four
本章任务Tasks
本章实验是通过固件库函数的方式来配置蜂鸣器的GPIO,除此之外,还可以通过修改寄存器的方式来达到目的,按以下思路完成本章任务:新建BeepByRegister.c和BeepByRegister.h文件,并添加到App分组中,可参考库函数蜂鸣器驱动。使用RCC_APB2ENR寄存器使能GPIOA时钟,通过修改GPIOx_CRL寄存器来修改蜂鸣器GPIO的配置,用GPIOx_IDR寄存器读取1/O端口的输入电平,用GPIOx_ODR修改1/0端口的输出电平,编写蜂鸣器驱动,并验证通过。涉及的寄存器可以从标准库的配置函数中找到。
注意,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卫生部发布医院工作制度
- 国企采购归口管理制度
- 2026年国企党建工作考核试题题库及答案
- 2026年连云港市海州区社区工作者招聘考试经典试题及答案
- 骨折病症状诊断与护理培训
- 契诃夫小说研究
- 嫦娥探月工程科普
- 潮州市教师招聘考试题库及答案
- 神经症症状解析及护理建议
- 滨州市辅警招聘面试题及答案
- 2026年北京市西城区初三一模英语试卷(含答案)
- 九师联盟2026届高三年级下学期4月测试英语试卷
- 新高考浪潮下生物学教学中学习共同体的构建与实践探索
- 2024年高考化学试卷(重庆)
- 2026年广东佛山市高三二模高考物理模拟试卷试题(含答案详解)
- 特种设备数据分析师面试题及答案解析
- 魏晋南北朝书法艺术
- 2025年纪检监察笔试题及答案
- 慢病防治课题申报书模板
- 【《鼓式制动器的结构设计及三维建模分析》14000字(论文)】
- GB/T 16271-2025钢丝绳吊索插编索扣
评论
0/150
提交评论