STM32 低功耗 调试心得】的更多相关文章

MCU在进入STOP模式的时候,GPIO的状态都是保持在进入低功耗模式之前的状态,在最小系统中,MCU的GPIO都是悬空的,所以设置为何种状态都不会影响到功耗.但当连接到外设后,外设的电平状态和所连接的GPIO不一致的时候,就会产生电流.也就是所谓的漏电流! 解决办法:将GPIO的对应GPIO都设置为输出高电平的状态(与GPIO接的模块引脚电平匹配),之后再进入到STOP模式,此时的电流就减少到了符合数据手册的范畴. 小结:首先需要阅读外设IC的手册,确定好对应引脚的状态,做到心中有数;然后在控…
1.在调试“E:\htwang\smart2200v201\ARM嵌入式系统实验教程(二)\开发板出厂编程程序\液晶显示程序\LCM_Disp”的程序时,想使用外部RAM进行仿真调试,在将ADS1.2中的“DebugInExram Settings…->Arm Linker -> Output -> Equivalent Command Line”的“-info totals -entry 0x8100000 -scatter .\src\mem_b.scf”改为“-info total…
源: MIPI接口LCD屏调试心得…
1.STM32的3种低功耗模式 STM32有3种低功耗模式,分别是睡眠模式.停机模式和待机模式. 2.STM32在不同模式下的电流消耗 a.工作模式  消耗电流在27mA至36mA之间. b.睡眠模式  消耗电流在5.5mA至14.4mA之间. c.停机模式和待机模式  停机模式消耗电流在15uA  待机模式在5uA 3.各种低功耗模式下的唤醒条件 从上面的图表1可以看到,在睡眠模式下和待机模式下可以利用外部中断唤醒,而停机模式下只能通过以下4种方式唤醒: a.WAKEUP引脚的上升沿 b.RT…
以前自己调试过视频信号,无非就时钟加行场同步加数据线,如果视频信号出问题,第一看现象,第二测频率,反正出问题不是消隐信号出问题,就是时钟频率出问题.通过这种方式也调试成功过几个显示屏,然后就以为自己对视频信号的调试已经有丰富的经验了,直到这次需要自己用FPGA写一个VGA的驱动程序,才发现原来自己还是半桶水. 这次谈一下将RGB888的视频信号转换为VGA信号时的调试心得,使用ADV7123将数字信号转换为VGA信号. 首先谈一下VGA,在这个网站上可以能看到各种VGA信号的标准:http://…
虽然网上已经有多的数不清的调试教程了,但仍然没有发现哪篇文章写的通俗易懂,索性自己尝试写写自己的一些使用习惯或者说是心得,希望对那些还不是很懂得使用断点调试的孩子有一些帮助(大神请无视~). 1.断点调试是啥?难不难? 断点调试其实并不是多么复杂的一件事,简单的理解无外呼就是打开浏览器,打开sources找到js文件,在行号上点一下罢了.操作起来似乎很简单,其实很多人纠结的是,是在哪里打断点?(我们先看一个断点截图,以chrome浏览器的断点为例) 步骤记住没? 用chrome浏览器打开页面 →…
STM32的基本系统主要涉及下面几个部分: 一.电源 1).无论是否使用模拟部分和AD部分,MCU外围出去VCC和GND,VDDA.VSSA.Vref(如果封装有该引脚)都必需要连接,不可悬空: 2).对于每组对应的VDD和GND都应至少放置一个104的陶瓷电容用于滤波,并接该电容应放置尽量靠近MCU: 3).用万用表测试供电电压是否正确.调试时最好用数字电源供电,以便过压或过流烧坏板子.电压最好一步一步从进线端测试到芯片供电端. 二.复位.启动选择 1).Boot引脚与JTAG无关.其仅是用于…
关于stm32 smartcard功能调试,官方提供的例程是配合8024芯片进行控制的.程序可从地址:http://www.pudn.com/downloads420/sourcecode/embedded/detail1781544.html下载. 经过摸索,终于调试出不用8024的程序设计. 首先确定电路连接,stm32的USART3_CK(PB12)连接到接触式IC卡的CLK端(触点4),stm32的USART3_TX(PB10)连接到接触式IC卡的IO端(触点3),然后stm32选一个G…
在做React Native开发时,少不了的需要对React Native程序进行调试.调试程序是每一位开发者的基本功,高效的调试不仅能提高开发效率,也能降低Bug率.本文将向大家分享React Native程序调试的一些技巧和心得. Developer Menu Developer Menu是React Native给开发者定制的一个开发者菜单,来帮助开发者调试React Native应用. 提示:生产环境release (production) 下Developer Menu是不可用的. 如…
1.操作步骤: 1-1.添加断点:直接在标记处点击鼠标左键即可.(删除断点只需再点击断点处即可) 1-2.Debug下运行代码 1-3.按照所需调试进行代码调试.Debug的调试方式如下所示: 分别为: 1.show execution point (F10)  显示当前所有断点 2.step over(F8)  单步调试. 若函数A内存在子函数a时,不会进入子函数a内执行单步调试,而是把子函数a当作一个整体,一步执行. 3.step into(F7) 单步调试. 若函数A内存在子函数a时,会进…
在调试漏洞的过程中,个人感觉最棘手的就是ie浏览器的漏洞和flash player的漏洞了.这里打算记录一下学习过程中的心得(主要是基于uaf类),以方便新人学习. 首先,ie漏洞与众不同的是,程序的执行流程是由攻击者控制的.poc中的js脚本反应到mshtml中的c++代码决定了程序的执行流程,所以对于ie漏洞来说仔细研究poc非常的关键.此外就是调试ie漏洞需要对ie本身有很强的了解,这也是我写这篇博文的动机,如果完全不清楚ie背后的机制,那么ie漏洞根本没法去调. 调试IE漏洞的关键点:执…
预研目标 六轴静止时,终端进入低功耗模式:六轴震动时,终端正常工作模式,从而极大减少非工作时的电流消耗. 解决方案 机器静止时,依据六轴算法,CPU进入休眠(停止)模式:机器工作时,触发六轴中断唤醒CPU,再配合系统空闲时进入CPU睡眠模式,从而极大降低机器非工作时的电流消耗和降低工作时底电流消耗. 关键技术 STM32功耗模式 按功耗由高到低排列,STM32具有运行.睡眠.停止和待机四种工作模式.上电复位后STM32处于运行状态时,当内核不需要继续运行,就可以选择进入后面的三种低功耗模式降低功…
STM32出现HardFault_Handler故障的原因主要有两个方面: 1.内存溢出或者访问越界.这个需要自己写程序的时候规范代码,遇到了需要慢慢排查. 2.堆栈溢出.增加堆栈的大小. 出现问题时排查的方法: 发生异常之后可首先查看LR寄存器中的值,确定当前使用堆栈为MSP或PSP,然后找到相应堆栈的指针,并在内存中查看相应堆栈里的内容.由于异常发生时,内核将R0~R3.R12.Returnaddress.PSR.LR寄存器依次入栈,其中Return address即为发生异常前PC将要执行…
我校的课程真是跟不上时代发展,甚至还在教授8051/8052单片机的内容,于是不甘寂寞的我就自己踏入了STM32单片机的坑-- 首先,我现在大二,刚学完模拟电子技术,还没有学习数字电路技术,于是自学单片机开发会有一定困难,而我校要到大三才能开放单片机课程,这就很有趣了,我不得不去啃一些完全没见过的玩意--说多了都是泪-- 其次,记录一下开发环境和我使用的工具 操作系统:Windows 10 pro Redstone2 insider preview 工具软件:ARM Keil MDK(versi…
修复 bug 占用我们日常开发的大部分时间,熟练的使用调试工具可以给我们节约大部分的时间. LLDB 的常用命令 expression expresion 是一个非常常用的命令,我们可以通过这个命令来执行一些表达式,这样我们就不需要重写运行工程了,例如: (lldb) expression -- self.view.backgroundColor = [UIColor greenColor] (lldb) expression -- (void)[CATransaction flush] //…
转载请注明出处:http://www.cnblogs.com/lihaiping/p/6142512.html   最近因为项目需要使用到camera的功能,所以针对官方的demo源码进行一番阅读,并修改了一个record录像以后程序崩溃的bug.   这里主要记录下调试过程的情况:   1)打开rk3288-walkera-board上基于android5.1的camera以后,出现无视频画面的黑屏情况.  经过查找主要是因为camera适用720P打开,而在程序的预览过程中,选择用了1080…
开发板:明远智睿MY-IMX6-EK140 内核源码:linux-3.14.52 背光驱动IC:MP3202 调光原理:通过开发板的核心板PWM4引脚控制MP3202的EN脚,输出不同的占空比从而达到输出平均电流的不同,这样就可以达到调节背光亮度的目的 调试过程: 1.从硬件图可以看出核心板的PWM4引脚连接到了背光驱动IC MP3202的EN脚,所以我们通过搜索PWM4来找设备树上的硬件节点 2.在明远智睿MY-IMX6-EK140设备树,arch/arm/boot/dts/myimx6ek1…
看到有朋友遇到Hard Fault 异常错误,特地找到一篇飞思卡尔工程师写的一片经验帖,定位Hard Fault 异常. Kinetis MCU 采用 Cortex-M4 的内核,该内核的 Fault 异常可以捕获非法的内存访问和非法的编程行为.Fault异常能够检测到以下几类非法行为: ·        总线 Fault:  在取址.数据读/写.取中断变量.进入/退出中断时寄存器堆栈操作(入栈/出栈)时检测到内存访问错误. ·        存储器管理 Fault: 检测到内存访问违反了内存保…
1.断点调试是啥?难不难? 断点调试其实并不是多么复杂的一件事,简单的理解无外呼就是打开浏览器,打开sources找到js文件,在行号上点一下罢了.操作起来似乎很简单,其实很多人纠结的是,是在哪里打断点?(我们先看一个断点截图,以chrome浏览器的断点为例) 步骤记住没? 用chrome浏览器打开页面 → 按f12打开开发者工具 → 打开Sources → 打开你要调试的js代码文件 → 在行号上单击一下,OK!恭喜你的处女断点打上了,哈哈~~ 2.断点怎么打才合适? 打断点操作很简单,核心的…
文章转载自:http://xfjane.spaces.eepw.com.cn/articles/article/item/77908 基于ADS的ARM调试有关问题总结 1.  在添加文件的过程中你可能已经发现了CodeWarrior IDE 为用户建立了三个 Target,分别是“DebugRel”.“Realse”.“Debug”,这三个Target 分别表示三种 调试方式. DebugRel 表示在生成目标的时候会为每一个源文件生成调试信息:Debug 表示为每一个源文件生成最完全的调试信…
描述 pppd是用于驱动3g模块的一种方式,其本质是和运营商APN协商,建立连接 其与运营商之间使用ppp协议,而用户在应用层使用系统提供的socket即可,从而忽略底层使用的时何种接口的设备,避免因硬件不同而造成应用程序不同 pppd的命令一般 为 pppd call [option] 进入pppd程序之后,可能会占用前台,此时使用CTRL-C推出,同时也会结束pppd,或在命令后加上'&',让其在另一个线程运行,防止控制台被占用 流程 我归类为两个过程: chat ppp协商 chat 使用…
之前自己做过一个项目的低功耗大约11ua,那时总结下有几点: 1.外设时钟必须切换为内部时钟: 2.不用的外设全部关闭,要用再开就是了: 3.浮空引脚必须配置为下拉: 4.硬件上的上拉.下拉电阻切记不能随便加,使用到的外围芯片也要注意功耗问题: 5.对进入低功耗有好几种情况可以选择(睡眠.停机.待机),不同模式唤醒机制略有不同: 6.你需要一个测试过的低功耗的DEMO,测试硬件上的问题或移植到你的工程,这是最靠谱的:…
首先声明的是本人刚刚大学毕业进入电机控制这个行业,以前在学校也做过类似51的实验,然而在工作中发现那些东西是皮毛的不能再皮毛,我现在在公司也算是一个实习生,主要工作是改各厂家对控制器的功能需求,(其实大多数功能都是前人做过的,我负责的还是移植为主),最近遇到一个程序个人觉得还是需要思考一下的,虽然是我们老大写的,但看懂,理解我觉得是非常有必要的. 先说一下该部分程序要实现的功能:当刹车,转把,霍尔故障时,点按修复进入修复状态,然后长按修复,低速行驶(个人觉得提出这个功能的厂家也是挺2的).难点就…
No Cortex-m SW device found解决办法 16.07.14 今天工作,遇到一个问题:用jlink采用SW下载模式时,一直显示No Cortex-m SW device found.驱动都是装好的,之前采用20pin的jtack下载模式都是好好的,换装了好几次驱动,因为本机是win10,以为可能是win10的兼容性问题,就换用win XP虚拟机,但还是未能解决这一问题.直到老板说在他电脑上可用,我灵机一动,合不把他的驱动拷过来? Jlink的驱动一般网上下载为宜安装包,就和正…
安装openocd就不用多说了,使用 apt-get install openocd 这个命令就可以做到. 对于使用stm32w系列的MCU,需要下载新的openocd-0.7及以上版本才能支持.0.7版本的openocd很好地支持了stlinkv2. 编译openocd-0.7 ./configure --enable-jlink --enable-stlink --prefix=/home/merlin/swinstall/openocd make make install 测试中使用stl…
今天在项目中用到SDL2.0的库做视频显示用,在其中出现不少问题,这里一一记录下来,并作为以后的参考. 同一个窗口句柄在多次使用SDL_CreateWindowFrom和SDL_DestroyWindow以后,发现程序运行正常,但视频显示不出来的问题. 第一次将Hwnd传递给SDL_CreateWindowFrom,创建一个显示窗口给SDL,随后在不使用的时候,调用SDL_DestroyWindow,将刚刚创建的显示窗口销毁,释放显示相关资源之后,然后在再次使用SDL_CreateWindowF…
作者: East  FPGA那点事儿 上一章讲述了PCIe总线如何提高DMA的效率. 本章以服务器常用的4通道1000M以太网卡为例讲述如何实现多个虚拟DMA通道. 1.多通道DMA发 4通道以太网卡的数据相互独立,需要4个虚拟DMA发通道实现4路数据独立传输.4个虚拟DMA发通道如下: 多通道DMA发比较简单,因为TLP包中已经包含了具体的物理地址,4个虚拟通道可以向4个不同的物理内存位置写数据.所以DMA发逻辑与单通道DMA发逻辑没有什么不同,关键点在增加的总线仲裁逻辑. 4个网口都有数据要…
作者:East  FPGA那点事儿 上一章讲述了PCIe总线DMA的原理和XAPP1052存在的问题. 本章以服务器常用的4通道1000M以太网卡为例讲述如何提高DMA的效率. 1.内存重分配Windows操作系统会划分一部分硬盘空间作为虚拟内存,将长时间不用得应用程序或内存交换到硬盘中,而释放出一部分内存空间供其他应用程序使用,提高计算机的性能. 或者操作系统会定进行内存碎片整理,将应用程序中零散的内存收集起来重新分配,减少内存碎片. 但是如果被交换或整理的是DMA使用的内存就麻烦了.操作系统…
作者 :East  FPGA那点事儿 1.PCIe的DMA介绍在PCIe中需要使用DMA的项目,一定要先看XAPP1052,里面包含一个DMA的参考设计,对初学者有极大的帮助. XAPP1052中包含FPGA源代码和驱动程序源代码,其中FPGA源代码最主要的文件为:1.<TX_ENGINE.v>:是产生TLP包的逻辑,包含读TLP请求用于DMA读:写TLP请求用于DMA写:CPLD用于BAR空间读.2.<RX_ENGINE.v>:是解析TLP包的逻辑,包含读TLP解析用于BAR空间…
摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为底盘包含软硬件整套解决方案,是很多机器人公司的核心技术,一般不会随便公开.出于强烈的求知欲与学习热情,我想自己DIY一整套两轮差分底盘,并且将完整的设计过程公开出去供大家学习.说干就干,本章节主要内容: 1.stm32主控硬件设计 2.stm32主控软件设计 3.底盘通信协议 4.底盘ROS驱动开发…