STM32 调试 24L01 心得】的更多相关文章

大部分使用STM32开发nrf24L01的用户基本都是照搬常见的几个开发板的源代码,在这里我做一些总结: 1.源代码中在while(1)的循环中有 NRF24L01_TX_Mode();或NRF24L01_RX_Mode();类似这样的代码,因为源码中需要检测按键以便切换的不同的模式,对于正常使用来讲,都是发送接收方确定了的,所有,只需要一次即可,没必要放到while中. 2.接收方和发送方的ADDRESS必须一致,这一点尤为重要. 3.发射的通道即频率必须一致,这个好理解.速率,数据长度,也要…
eclipse debug (调试) 学习心得   进入debug模式:   1.设置断点   2.启动servers端的debug模式   3.运行程序,在后台遇到断点时,进入debug调试状态   =============================   作用域 功能 快捷键 全局 单步返回 F7 全局 单步跳过 F6 全局 单步跳入 F5 全局 单步跳入选择 Ctrl+F5 全局 调试上次启动 F11 全局 继续 F8 全局 使用过滤器单步执行 Shift+F5 全局 添加/去除断点…
GDB 进行调试 使用心得 转 1: 对于在应用程序中加入参数进行调试的方法:   直接用 gdb app -p1 -p2 这样进行调试是不行的.   需要像以下这样使用:    #gdb app    (gdb) r -p1 -p2    或者在运行run命令前使用set args命令:    (gdb) set args p1 p2    可以用show args 命令来查看 2. 加入断点:   break <linenumber>   break <funcName>  …
注意的地方: 1.调试24L01的时候,信号的初始状态一定要设置,否则在设置模块的状态的时候容易出错.( CE=0; CSN=1; SCK=0; MOSI = 1; IRQ = 1;)IRQ设置成1是因为要读IRQ线上的数据,在设置完状态但还没发送数据的时候IRQ保持高电平,当有个数据成功发送了,或者成功接收了,IRQ线变成低电平,并且在下一次发送的时候有个高脉冲(只是发送端),大致8ms. 2.MISO这个信号的引脚上拉能力不做,应该加一个10K的上拉电阻,波形如下: 上拉前 上拉后 3.在发…
开发过程经常需要查看某些特定参数.通常的方法可以使用paintf进行打印输出,观察具体的变量值.STM32内部集成有USART的串口功能,可以通过串口直接输出到电脑(上位机).使用非常方便,基本不需要不需要写代码,只要配置一下就可以使用. 简单设置就可以看到上面的效果 配置方法: 1.重定向printf的输出函数 int fputc(int ch, FILE *f) 2.配置STM32F10x的USART串口 重定向方法 stdio.h 的输出内容 int fputc(int ch, FILE…
原创: Osprey  鱼鹰谈单片机 2月17日 STM32 有一个代码跟踪功能,即 ITM,这个调试功能非常强大,可以替代串口输入输出功能,而且只需要占用一根 I/O 线就可以实现.当然它的好处不仅仅体现在这里,在调试嵌入式操作系统代码时你会发现相当方便.不过本篇的重点不在如何利用它进行代码调试,而是如何使能这个功能(实际上只是因为才解决了这个问题,还没正式用它调试代码呢). 对于 KEIL 的调试方法,我将总结三篇文章,这是第三部分"ITM调试",第一部分为"基础调试&q…
问题:加入红外初始化后,程序卡在红外初始化处 解决思路: 1.确认时钟是不是好的 2.把定时器分解调试(输入捕获.溢出分开一步一步弄) 已解决:定时器的溢出中断 注意:STM32Cube配置好后,需要人为地开启中断,然后需要重新定义回调弱函数 HAL_TIM_Base_Start_IT(&htim1); //开启溢出中断 //重新定义回调函数 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if(htim->Inst…
..\..\SYSTEM\usart\usart.c(1): error:  #5: cannot open source input file "sys.h": No such file or directory #include "..\sys\sys.h"这样就可以找到路径了 再次编译出现了问题 ..\..\SYSTEM\usart\..\sys\sys.h(3): error:  #5: cannot open source input file "…
1: 对于在应用程序中加入参数进行调试的方法:   直接用 gdb app -p1 -p2 这样进行调试是不行的.   需要像以下这样使用:    #gdb app    (gdb) r -p1 -p2    或者在运行run命令前使用set args命令:    (gdb) set args p1 p2    可以用show args 命令来查看 2. 加入断点:   break <linenumber>   break <funcName>   break +offset  …
1.Step Into (also F5) 跳入2.Step Over (also F6) 跳过3.Step Return (also F7) 执行完当前method,然后return跳出此method4.step Filter 逐步过滤 一直执行直到遇到未经过滤的位置或断点(设置Filter:window-preferences-java-Debug-step Filtering)5.resume 重新开始执行debug,一直运行直到遇到breakpoint.    例如 :A和B两个断点,d…