[野火]stm32用寄存器点亮LED灯

初学者的学习笔记,有问题的地方请多指教,会持续修改更新,不断学习进步。

4.26日更新

目录

1、对GPIO的简单刨析

2、直接操作绝对的内存地址点灯(一)

3、操作寄存器映射点灯(二)


对GPIO的理解:

GPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来。

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pWF5ZC-5ZCN5Yid,size_20,color_FFFFFF,t_70,g_se,x_16

1、保护二极管及上、下拉电阻

目的:防止引脚外部过高或过低的电压输入引入芯片导致芯片毁损。

当引脚电压高于VDD时,上方的二极管导通,当引脚电压低于VSS时,下方的二极管导通。如果io口连接电机,电机会产生反电动势,在极短时间内产生高压,二极管反应不过来,就有可能直接导致芯片烧坏。

2、P-MOS管和N_MOS管(推挽输出和开漏输出)

输出数据寄存器(ODR)写0或1时,通过输出控制,控制两个MOS管工作,通过外设的GPIO输出3.3V或0V

                                                                  推挽输出

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p6X56yR5YyX5Zyo57yW56iL5Lit5pG454is5rua5omT,size_17,color_FFFFFF,t_70,g_se,x_16

  在ODR对该结构输入高电平时, 经过反向后,上方满足Ug<Us,PMOS导通,下方的NMOS关闭,对外输出3.3V

在该结构输入低电平时,经过反向后,下方满足Ug>Us导通,NMOS导通,上方的PMOS关闭,OUT被拉入地,对外输出0

当引脚高低电平切换时,两个管子轮流导通,P管负责灌电流,N管负责拉电流,使其负载能力和开关速度都比普通的方式有很大的提高。

推挽输出的低电平为0V,高电平为3.3V

开漏输出

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p6X56yR5YyX5Zyo57yW56iL5Lit5pG454is5rua5omT,size_19,color_FFFFFF,t_70,g_se,x_16

 特性:只输出低电平,无法直接输出高电平。

若控制输出为1时,PMOS管和NMOS管都关闭,引脚既不输出高电平,也不输出低电平,为高阻态,为正常使用,必须接上拉电阻。

总结:推挽输出模式一般应用在输出电平为0和3.3V而且需要高速切换开关状态的场合。在STM32的应用中,除了必须用开漏模式的场合,都习惯用推挽输出模式

开漏输出具有“线与”功能,一个为低,全部为低,多用于I2C和SMBUS总线,除此之外,还有电平不匹配的场合,如需要输出5V的高电平,就可以在外部接一个上拉电阻,上拉电源为5V,并且把GPIO设置为开漏模式,当输出高阻态时,由上拉电阻和电源向外输出5V的电平。

3、输出数据寄存器(ODR)

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
野火stm32f407开发板上,可以使用寄存器来配置和控制EXTI中断。 以下是一种使用寄存器编写的方法: 1. 首先,需要开启SYSCFG时钟和GPIO时钟,以便使用相关的寄存器。可以使用RCC_APB2PeriphClockCmd和RCC_AHB1PeriphClockCmd函数进行时钟使能。 2. 然后,需要设置中断线与外设之间的映射,将中断线连接到相应的GPIO引脚。可以使用SYSCFG_EXTILineConfig函数进行配置。 3. 接下来,需要配置EXTI的触发模式、中断模式以及中断线的使能。可以使用EXTI_InitTypeDef结构体和EXTI_Init函数进行配置。 4. 创建中断服务函数,用于处理中断事件。中断服务函数的命名和中断向量的配置需要参考所使用的开发板和MCU型号的相关文档。 5. 最后,需要在main函数中使能中断控制器NVIC,并设置优先级,以便使能和处理EXTI中断。 以上是使用寄存器编写的一种方法来控制EXTI中断。通过配置相关寄存器,可以实现对中断触发条件和中断线的控制。具体的寄存器地址和配置值可以参考开发板的相关文档或者MCU的参考手册。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [STM32的EXTI外部中断(直接操作寄存器)](https://download.csdn.net/download/weixin_41205554/10136418)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [轻松搞懂STM32F407之中断及NVIC与EXTI](https://blog.csdn.net/weixin_44091010/article/details/118555476)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值