


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、接触了 STM32的开发板快一周了 , 拿到板子厂商提供了些 DEMO程序 , 其他想自己学习 , 看了 ST的资料手册 , 感觉看下来 , 一个工具还是不知道怎么用 , 还好现在网络强大 , 在论坛上可以去找自己需要的资料 . 我把搜集的资料整理了一下 , 以及自己加了一些自己的 , 方便自己以后再用到 , 方便查找 , 同时和网友们一起分享 , 希望你们有什么新的想法也提出来, 一起分享 .开始吧 ! 嘿嘿简述1STM32的输入输出管脚有下面8 种可能的配置 :( 4 输入 +2 输出 +2 复用输出) 浮空输入 _IN_FLOATING 带上拉输入 _IPU 带下拉输入 _IPD( 所谓
2、上拉就是接一电阻到电源;下拉就是接一电阻到地。也就是说带上拉就是口初始的时候是高电平,下拉就是低电平。 ) 模拟输入 _AIN 开漏输出 _OUT_OD 推挽输出 _OUT_PP 复用功能的推挽输出_AF_PP 复用功能的开漏输出_AF_ODI/O口的输出模式下,有3 种输出速度可选 (2MHz、10MHz和 50MHz),这个速度是指I/O 口驱动电路的响应速度而不是输出信号的速度, 输出信号的速度与程序有关(芯片内部在I/O 口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路)。通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的
3、。高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路, 这样非常有利于提高系统的 EMI 性能。当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号。关键是 GPIO的引脚速度跟应用匹配(推荐 10 倍以上)。比如:对于串口,假如最大波特率只需,那么用2M的GPIO的引脚速度就够了,既省电也噪声小。对于 I2C 接口,假如使用 400k 波特率,若想把余量留大些,那么用 2M的 GPIO的引脚速度或许不够, 这时可以选用 10M的 GPIO 引脚速度。对于 SPI 接口,假如使用 18M或 9M波特率,用 10M的GPIO的引脚速度显然不够了
4、,需要选用 50M的 GPIO的引脚速度。所有端口都有外部中断能力。 为了使用外部中断线,端口必须配置成输入模式。GPIO 口的配置具有上锁功能,当配置好 GPIO口后,可以通过程序锁住配置组合,直到下次芯片复位才能解锁。2在 STM32中如何配置片内外设使用的IO 端口首先,一个外设经过 配置输入的时钟和 初始化后即被激活 ( 开启) ;如果使用该外设的输入输出管脚, 则需要配置相应的 GPIO端口(否则该外设对应的输入输出管脚可以做普通 GPIO管脚使用);再对外设进行详细配置。对应到外设的输入输出功能有下述三种情况:一、外设对应的管脚为输出: 需要根据外围电路的配置选择对应的管脚为复用功
5、能的推挽输出或复用功能的开漏输出。二、外设对应的管脚为输入: 则根据外围电路的配置可以选择浮空输入、带上拉输入或带下拉输入。三、 ADC对应的管脚:配置管脚为模拟输入。如果把端口配置成复用输出功能, 则引脚和输出寄存器断开, 并和片上外设的输出信号连接。 将管脚配置成复用输出功能后, 如果外设没有被激活,那么它的输出将不确定。3通用 IO 端口( GPIO)初始化:GPIO 初始化RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA| B |C, ENABLE):使能 APB2总线外设时钟RCC_ APB2PeriphResetCmd (RCC_APB2Per
6、iph_GPIOA | B| C,DISABLE):释放 GPIO复位配置各个 PIN 端口(模拟输入 _AIN、输入浮空_IN_FLOATING、输入上拉 _IPU、输入下拉 _IPD、开漏输出 _OUT_OD、推挽式输出 _OUT_PP、推挽式复用输出 _AF_PP、开漏复用输出 _AF_OD)GPIO 初始化完成=最近刚开始学习STM32,所以从最基本的GPIO开始学起;首先看看 STM32的 datasheet 上对 GPIO口的简单介绍:每个 GPI/O 端口有两个 32 位配置寄存器 (GPIOx_CRL, GPIOx_CRH),两个 32 位数据寄存器(GPIOx_IDR,GPI
7、Ox_ODR),一个 32 位置位 / 复位寄存器 (GPIOx_BSRR),一个 16 位复位寄存器 (GPIOx_BRR)和一个 32 位锁定寄存器(GPIOx_LCKR)。GPIO 端口的每个位可以由软件分别配置成多种模式。 每个 I/O 端口位可以自由编程,然而 I/0 端口寄存器必须按 32 位字被访问 ( 不允许半字或字节访问 ) 。GPIOx_BSRR和 GPIOx_BRR寄存器允许对任何GPIO 寄存器的读 / 更改的独立访问;这样,在读和更改访问之间产生IRQ 时不会发生危险。端口位配置 CNFx1:0=xxb , MODEx1:0=xxb再看 GPIO功能很强大:1. 通用
8、 I/O(GPIO) :最最基本的功能,可以驱动 LED、可以产生 PWM、可以驱动蜂鸣器等等;2. 单独的位设置或位清除: 方便软体作业, 程序简单。 端口配置好以后只需 GPIO_SetBits(GPIOx, GPIO_Pin_x) 就可以实现对 GPIOx的 pinx位为高电平;3. 外部中断 / 唤醒线:端口必须配置成输入模式时,所有端口都有外部中断能力;4. 复用功能 (AF) :复用功能的端口兼有IO 功能等。复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式:(CNFx1:0=01b ,MODEx1:0=00b) 。5. 软件重新映射 I/O 复用功能:为了使不同
9、器件封装的外设 I/O 功能的数量达到最优, 可以把一些复用功能重新映射到其他一些脚上。 这可以通过软件配置相应的寄存器来完成。 这时,复用功能就不再映射到它们的原始引脚上了;锁定机制:当在一个端口位上执行了所定(LOCK)程序,在下一次复位之前,将不能再更改端口位的配置。GPIO基本设置GPIOMode_TypeDef GPIO mode定义及偏移地址GPIO_Mode_AIN = 0x0,.GPIOEGPIO_Pin_X 可以选择 GPIO_Pin_0,GPIO_Pin_1.这个最好看下STM32的手册 , 以及自己的硬件电路 .常用的 GPIO操作函数 :uint8_t GPIO_Rea
10、dInputDataBit(GPIO_TypeDef* GPIOx, uint16_tGPIO_Pin);读 GPIO某一位的输入uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);读 GPIO的输入uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_tGPIO_Pin);读 GPIO某一位的输出uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);读 GPIO的输出void GPIO_SetBits(GPIO_TypeDef* GPIO
11、x, uint16_t GPIO_Pin);将GPIO的某个位置位void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_tGPIO_Pin);将GPIO的某个位复位void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin,BitAction BitVal);写 GPIO的某个位voidGPIO_Write(GPIO_TypeDef* GPIOx, uint16_tPortVal);写 GPIO再来谈谈一些遇到的小tip在单片机中,可以通过P0=P0来进行位取反,但是stm32 中却没有单独的位操作,所以我们可以通过如下代码达到取反目的:GPIOx->ODR = GPIO_Pin;可以将其写成库函数格式:void GPIO_PinReverse(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)/* Check the parameters */assert_param(IS_GPIO_ALL_PERIPH(GPIOx); assert_param(IS_GPIO_PIN(GPIO_Pin);GPIOx->ODR = GPIO_Pin;还可以 :GPIO_Write
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防灾避险机制方案
- 基于蒙特卡罗模拟的物流企业数据资产价值评估研究
- 专题07 建构原子模型(解析版)(知识点+例题+习题)-2024-2025学年七下科学期末考点专题大串讲(浙教版2024)
- 2025年高中地理选修六环境污染治理案例与环保法律法规试题卷
- 2025网络服务合同示范文本
- 2025合同范本酒店餐饮酒水供应协议书样本
- 2025设备租赁合同协议范本
- 历史城市文化产业发展集群链基础知识点归纳
- 2025机器设备租赁合同
- 英语期刊编辑笔试题目及答案
- GB/T 12008.7-2025塑料聚氨酯生产用聚醚多元醇第7部分:碱性物质含量的测定
- 大额存单合同协议
- 2025-2030中国鱼油行业市场深度调研及发展趋势和投资前景预测研究报告
- 2025年全国国家版图知识竞赛(中小学组)题库
- 蔬菜净菜车间管理制度
- 2025年高考化学考点复习之有机合成(解答大题)
- 企业国际化经营中的人力资源管理
- 竣工预验收自评报告
- 2025年中国石油化工行业市场发展前景及发展趋势与投资战略研究报告
- 毕业设计(论文)-手推式草坪修剪机设计
- 毕业季快闪抖音演示模板
评论
0/150
提交评论