欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第8讲-GPIO原理与配置方法PPT.ppt

    • 资源ID:97818372       资源大小:4.62MB        全文页数:29页
    • 资源格式: PPT        下载积分:6金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第8讲-GPIO原理与配置方法PPT.ppt

    第 8 讲 GPIO原理与配置方法STM32 GPIOSTM32 GPIO相关寄存器相关寄存器1STM32STM32 GPIOGPIO固件库函数配置方法固件库函数配置方法2实例讲解实例讲解:跑马灯,按键,蜂鸣器跑马灯,按键,蜂鸣器3 原子教你玩原子教你玩STM32STM32系列视频系列视频技术支持论坛技术支持论坛:开源电子网开源电子网 官方微博官方微博:“正点原子正点原子”微博网址微博网址 http:/ 1GPIO 8GPIO 8种模式种模式3 3个最大输出速度个最大输出速度 原子教你玩原子教你玩STM32STM32系列视频系列视频 -输入浮空 -输入下拉 -输入上拉 -模拟输入 -开漏输出 -推挽式输出 -推挽式复用功能 -开漏复用功能 2MHz 10MHz 50MHz2GPIOGPIO基本结构基本结构 原子教你玩原子教你玩STM32STM32系列视频系列视频3GPIO 输入输出配置相关寄存器输入输出配置相关寄存器 l 寄存器配置在STM32中文参考手册V10的8.2节有详细讲解 原子教你玩原子教你玩STM32STM32系列视频系列视频 GPIOx_CRL:端口配置低寄存器 GPIOx_CRH:端口配置高寄存器 GPIOx_IDR:端口输入寄存器 GPIOx_ODR:端口输出寄存器 GPIOx_BSRR:端口位设置/清除寄存器 GPIOx_BRR:端口位清除寄存器 GPIOx_LCKR:端口配置锁存寄存器4 原子教你玩原子教你玩STM32STM32系列视频系列视频5 原子教你玩原子教你玩STM32STM32系列视频系列视频6 原子教你玩原子教你玩STM32STM32系列视频系列视频7 原子教你玩原子教你玩STM32STM32系列视频系列视频8 原子教你玩原子教你玩STM32STM32系列视频系列视频9 原子教你玩原子教你玩STM32STM32系列视频系列视频10 原子教你玩原子教你玩STM32STM32系列视频系列视频 通过跑马灯实例测试寄存器用法!11 原子教你玩原子教你玩STM32STM32系列视频系列视频跑马灯硬件连接跑马灯硬件连接12 原子教你玩原子教你玩STM32STM32系列视频系列视频寄存器配置方式改写工程模板代码:寄存器配置方式改写工程模板代码:int main(void)delay_init();RCCAPB2ENR|=1APB2ENR|=1CRL&=0XFF0FFFFF;GPIOBCRL|=0X00300000;/PB.5 推挽输出 GPIOBODR|=1CRL&=0XFF0FFFFF;GPIOECRL|=0X00300000;/PE.5推挽输出 GPIOEODR|=1ODR|=1ODR&=(1ODR&=(1ODR|=1PB.5 端口配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;/推挽输出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;/IO口速度为50MHz GPIO_Init(GPIOB,&GPIO_InitStructure);/根据设定参数初始化GPIOB.5 GPIO_SetBits(GPIOB,GPIO_Pin_5);/PB.5 输出高 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;/LED1PE.5 端口配置,推挽输出 GPIO_Init(GPIOE,&GPIO_InitStructure);/推挽输出,IO口速度为50MHz GPIO_SetBits(GPIOE,GPIO_Pin_5);/PE.5 输出高 while(1)GPIO_ResetBits(GPIOB,GPIO_Pin_5);/GPIOB.5输出低 GPIO_SetBits(GPIOE,GPIO_Pin_5);/GPIOE.5输出高 delay_ms(500);GPIO_SetBits(GPIOB,GPIO_Pin_5);/GPIOB.5输出高 GPIO_ResetBits(GPIOE,GPIO_Pin_5);/GPIOE.5输出低 delay_ms(500);20 原子教你玩原子教你玩STM32STM32系列视频系列视频看看我们看看我们“实验实验1跑马灯跑马灯-库函数操作库函数操作 的源码的源码”是怎么实现的?是怎么实现的?21STM32位带操作 原子教你玩原子教你玩STM32STM32系列视频系列视频l就是把每个比特膨胀为一个32位的字,当访问这些字的时候就达到了访问比特的目的,比如说BSRR寄存器有32个位,那么可以映射到32个地址上,我们去访问(读改写)这32个地址就达到访问32个比特的目的。22 原子教你玩原子教你玩STM32STM32系列视频系列视频 l 在 CM3 支持的位带中,有两个区中实现了位带。其中一个是 SRAM 区的最低 1MB 范围,0 x20000000 0 x200FFFFF (SRAM 区中的最低 1MB);第二个则是片内外设区的最低 1MB范围,0 x40000000 0 x400FFFFF (片上外设区中的最低 1MB)。l位带区:支持位带操作的地址区 位带别名:对别名地址的访问最终作用到位带区的访问上 (注意:这中间有一个地址映射过程)l 映射关系式:23 原子教你玩原子教你玩STM32STM32系列视频系列视频#define BITBAND(addr,bitnum)(addr&0 xF0000000)+0 x2000000+(addr&0 xFFFFF)5)+(bitnumPB.8 端口配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;/推挽输出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;/速度为50MHz GPIO_Init(GPIOB,&GPIO_InitStructure);/根据参数初始化GPIOB.8 GPIO_ResetBits(GPIOB,GPIO_Pin_8);/输出0,关闭蜂鸣器输出 while(1)/GPIO_ResetBits(GPIOB,GPIO_Pin_8);/GPIOB.8输出低 BEEP=0;delay_ms(300);BEEP=1;/GPIO_SetBits(GPIOB,GPIO_Pin_8);/GPIOB.8输出高 delay_ms(300);26 原子教你玩原子教你玩STM32STM32系列视频系列视频实验实验3按键输入实例:按键输入实例:#ifndef _KEY_H#define _KEY_H#include sys.h“#define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)/读取按键0#define KEY1 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)/读取按键1#define KEY2 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)/读取按键2#define KEY3 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)/读取按键3(WK_UP)#define KEY_UP 4#define KEY_LEFT3#define KEY_DOWN2#define KEY_RIGHT1void KEY_Init(void);/IO初始化u8 KEY_Scan(u8);/按键扫描函数#endifkey.h27 原子教你玩原子教你玩STM32STM32系列视频系列视频void KEY_Init(void)/IO初始化 GPIO_InitTypeDef GPIO_InitStructure;/初始化KEY0GPIOA.13,KEY1GPIOA.15 上拉输入 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);/使能时钟 GPIO_InitStructure.GPIO_Pin =GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;/PE24 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;/设置成上拉输入 GPIO_Init(GPIOE,&GPIO_InitStructure);/初始化GPIOE2,3,4 GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0;初始化 WK_UPGPIOA.0 下拉输入 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;/PA0 设置成输入,默认下拉 GPIO_Init(GPIOA,&GPIO_InitStructure);/初始化GPIOA.0u8 KEY_Scan(u8 mode)static u8 key_up=1;/按键按松开标志if(mode)key_up=1;/支持连按 if(key_up&(KEY0=0|KEY1=0|KEY2=0|KEY3=1)delay_ms(10);/去抖动 key_up=0;if(KEY0=0)return KEY_RIGHT;else if(KEY1=0)return KEY_DOWN;else if(KEY2=0)return KEY_LEFT;else if(KEY3=1)return KEY_UP;else if(KEY0=1&KEY1=1&KEY2=1&KEY3=0)key_up=1;return 0;/无按键按下key.c28 原子教你玩原子教你玩STM32STM32系列视频系列视频 int main(void)u8 t;delay_init();/延时函数初始化 LED_Init();/LED端口初始化 KEY_Init();/初始化与按键连接的硬件接口 BEEP_Init();/初始化蜂鸣器端口 LED0=0;/先点亮红灯 while(1)t=KEY_Scan(0);/得到键值 if(t)switch(t)case KEY_UP:/控制蜂鸣器 BEEP=!BEEP;break;case KEY_LEFT:/控制LED0翻转 LED0=!LED0;break;case KEY_DOWN:/控制LED1翻转 LED1=!LED1;break;case KEY_RIGHT:/同时控制LED0,LED1翻转 LED0=!LED0;LED1=!LED1;break;else delay_ms(10);main.c29

    注意事项

    本文(第8讲-GPIO原理与配置方法PPT.ppt)为本站会员(知***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开