推荐阅读最新更新时间:2024-11-02 05:18
STM32学习之外部中断
之前看了网上有关外部中断的使用介绍,觉得很简单,现在想想有那种想法真是浮躁,不要做浮躁的嵌入式工程师,要脚踏实地。今天把外部中断实验做了一下,不做不知道,一作就是没做出来,网上参考别人的程序和有关资料还是没做出来,最后到群里问了问,被一个叫STM32的网友发现了我的问题,改过来之后程序按照自己的想法执行。 下面介绍一下今天的使用总结: STM32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组位一个单位的,同组间的外部中断同一时间只能使用一个。比如说,PA0,PB0,PC0,PD0,PE0,PF0,PG0这些为1组,如果我们使用PA0作为外部中断源,那么别的就不能够再使用了,在此情况下,我们智能使用类似于PB1
[单片机]
STM32实现低功耗待机总结(电流低至5.7uA)
刚开始进入STOPMode后,整机功耗有 300uA的,此时外围其他硬件电路电流已经可以肯定漏电流在nA级,因此调试方向在主芯片,经过实际测试,都是GPIO配置的问题,比如某个GPIO为中断输入,闲置为低电平,而我们配置成了IPU,因此内部的40K上拉就会在这里消耗3/40k =75uA,另外将N.C的GPIO配置成Floating Input,也会有一些漏电流,实际测试漏电流不大;另外将STM32F05x直接PIINtoPIN替代STM32100,所以Pin35,36的 PF6,PF7为之前的VCC,GND,因此要相应的配置为IPU,IPD,才不会有拉电流/灌电流;外部不使用晶振,因此必须将其配置为IPU/IPD 或者输出Low,
[单片机]
在线调试STM32 卡在LDR R0, = SystemInit_ExtMemCtl
程序卡在 在线调试STM32 卡在LDR R0, = SystemInit_ExtMemCtl的解决办法如下: 出现最多的情况就是设置的断点过多,可以把断点全部删除试试看,把断点设置在主函数。 在程序中使用了C库(printf),那么进入Option ---target 将 use microLib 勾选上。 硬件原因,主芯片,或者晶振有问题,更换一下就好了
[单片机]
ARM DS-5开发STM32程序(Eclipse配合Keil插件使用)
ARM DS-5是基于Eclipse的ARM开发环境,有完善的编译流程,配合Keil插件开发STM32效果更佳。废话不多,先介绍思路: 1.安装MDK软件,就有编译STM32的工具链。我使用是MDK 4.72的。 http://pan.baidu.com/s/1o6iHPVG 2.安装DS-5,并注册社区版(免费阉割)。 http://pan.baidu.com/s/1mgHX2JY 补充:社区版激活代码: http://ds.arm.com/zh-cn/ds-5-community-edition/getting-started/ 3.运行DS-5安装Keil插件 安装好Keil插件后只是使用了Keil的调试和下载
[单片机]
STM32入门学习笔记之文件系统FatFs的移植3
21.2.2 ffsystem.c文件的修改 (1)内存分配ff_memalloc void* ff_memalloc( UINT msize ) { return ( void* )mymalloc( SRAMIN, msize ) ; } (2)内存释放ff_memfree void ff_memfree( void* mblock ) { myfree( SRAMIN, mblock ) ; } 21.2.3 exfuns.c与exfuns.h文件的创建 (1)创建exfuns.h文件,并输入以下代码。 #ifndef _EXFUNS_H #define _EXFUNS_H #i
[单片机]
STM32学习—定时器中断TIME
定时器中断TIME 通用定时器配置步骤(TIME2-TIME5) (1)使能定时器时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);//使能TIM4时钟 (2)初始化定时器参数,包含自动重装值,分频系数,计数方式等 voidTIM_TimeBaseInit(TIM_TypeDef*TIMx,TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct); typedef struct { uint16_t TIM_Prescaler; //定时器预分频器 1-65535 uint16_t TIM_CounterMo
[单片机]
STM32 | 在SRAM、FLASH中调试代码的配置方法
STM32的FLASH擦写次数有限(大概为1万次),所以为了延长FLASH的使用时间,我们平时调试时可以选择在SRAM中进行硬件调试。除此之外,SRAM 存储器的写入速度比在内部 FLASH 中要快得多,所以下载程序到SRAM中的速度较快。 所以我们很有必要建立两个版本的工程配置,在SRAM中调试程序完毕后,再把代码下载到FLASH中即可。这篇笔记主要分享在keil5中配置FLASH调试与SRAM调试的详细配置方法及如何切换两种配置。 本篇笔记以STM32F103ZET6为例。其FLASH大小为512KB,SRAM的大小为64KB。FLASH基地址为0x08000000,SRAM基地址为0x20000000。在STM32F
[单片机]
STM32与GD32横向对比区别
GD32 是国产单片机,据说开发人员来自ST公司,GD32 也是以 STM32 作为模板做出来的。所以 GD32 和 STM32 有很多地方都是一样的,不过 GD32 毕竟是不同的产品,不可能所有东西都沿用 STM32,有些自主开发的东西还是有区别的。不同的地方如下: 1、内核 GD32 采用二代的 M3 内核,STM32 主要采用一代 M3 内核, ARM 公司的 M3 内核勘误,GD 使用的内核只有 752419 这一个 BUG。 2、主频 使用HSE(高速外部时钟):GD32的主频最大108M,STM32的主频最大72M 使用HSI(高速内部时钟):GD32的主频最大108M,STM32的主频最大64M 主频大意味着单片
[单片机]