记录STM32调试
问题:加入红外初始化后,程序卡在红外初始化处
解决思路:
1、确认时钟是不是好的
2、把定时器分解调试(输入捕获、溢出分开一步一步弄)
已解决:定时器的溢出中断
注意:STM32Cube配置好后,需要人为地开启中断,然后需要重新定义回调弱函数
HAL_TIM_Base_Start_IT(&htim1); //开启溢出中断 //重新定义回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance == htim1.Instance)
{
if(flag == 0)
{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);
flag = 1;
}else
{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);
flag = 0;
}
}
}
还要注意分频系数和溢出值,因为TIM1是16位的,分频系数和周期值都不能超过65536
函数嵌套的流程:
1、void MX_TIM1_Init(void); 该函数包含HAL_TIM_Base_Init(&htim2);
2、void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle); 该函数被包含在HAL_TIM_Base_Init(&htim2)里;
3、void TIM1_UP_TIM10_IRQHandler(void); 该函数包含 HAL_TIM_IRQHandler(&htim1);
4、void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim); 该函数被包含在HAL_TIM_IRQHandler(&htim1);里
5、用户在HAL_TIM_PeriodElapsedCallback里编写程序
3、把C++那部分程序弄清楚
以后要弄清楚的:
1、汇编语言
2、程序执行的过程
3、debug调试的一些步骤
4、DMA
5、STM32Cube的参数意义
1、STM32中的关键文件:
stm32f4xxhal_conf.h 这里是配置管脚、外设的一个头文件
2、注意在复制一些.c文件后,记得add到工程中
记录STM32调试的更多相关文章
- 关于ThinkPHP5.1+的Log无法记录SQL调试记录的小经历
项目开发阶段,除了基本编码外,性能也需要实时关注与优化.之前我的大部分项目都是使用ThinkPHP5.0以及ThinkPHP3.2,对于框架提供的日志记录和日志配置都差不多,然后使用ThinkPHP5 ...
- stm32调试记录一
..\..\SYSTEM\usart\usart.c(1): error: #5: cannot open source input file "sys.h": No such ...
- STM32调试大法 之 串口通讯
开发过程经常需要查看某些特定参数.通常的方法可以使用paintf进行打印输出,观察具体的变量值.STM32内部集成有USART的串口功能,可以通过串口直接输出到电脑(上位机).使用非常方便,基本不需要 ...
- 记录一个调试REST风格的web服务的client
coogle浏览器的advanced rest client很好用,记录一下,脑子不好,容易忘,,可以在chrome 的网上应用店添加 Rest client是用来调试REST风格的Web服务,接收P ...
- STM32调试利器之ITM
原创: Osprey 鱼鹰谈单片机 2月17日 STM32 有一个代码跟踪功能,即 ITM,这个调试功能非常强大,可以替代串口输入输出功能,而且只需要占用一根 I/O 线就可以实现.当然它的好处不仅 ...
- Keil STM32调试,使用ST-Link下载程序时提示“flash timeout.reset the target and try it again”
参考: 很郁闷,买来没多久的 STM32F4-DISCOVERY 就挂了? STM32F103RB Jlink调试的时候出现flash timeout.reset the target and t ...
- stm32 调试时卡在LDR R0, =SystemInit
网上找到的可能的原因 堆栈空间默认的太小 默认startup_stm32f10x_hd.s中 Stack_Size EQU 0x00000400,如果改大之后,可能调试就可以正常运行. 出现最多的情况 ...
- STM32调试,发现HAL_Init();之后无法调试,甚至无法让程序停下来
症状 最近开始学习STM32Cube,发现新建工程后无法正常调试,过了HAL_Init();之后就无法继续调试了. 无法进行让程序暂停以及停止等操作.并在输出窗口不断刷出 ERROR: Can not ...
- STM32 调试 24L01 心得
大部分使用STM32开发nrf24L01的用户基本都是照搬常见的几个开发板的源代码,在这里我做一些总结: 1.源代码中在while(1)的循环中有 NRF24L01_TX_Mode();或NRF24L ...
随机推荐
- 全面了解 Java 原子变量类
目录 一.原子变量类简介 二.基本类型 三.引用类型 四.数组类型 五.属性更新器类型 参考资料
- vscode中LaTeX的编写
前言 在学习\(\mathrm{\LaTeX}\)的时候尝试过很多编辑器,但都被其复古的外观或者复杂的配置劝退.并且因为本身就在使用VScode写其他的一些语言,正好借此机会也学习一下怎么用VScod ...
- matlab 霍夫变换—检测圆
function [hough_space,hough_circle,para] = hough_Circle(BW,step_r,step_angle,r_min,r_max,p) % %%%%%% ...
- EasyExcel实现导入excel
https://blog.csdn.net/rexueqingchun/article/details/91870372 1.pom.xml配置依赖包 <!-- xls格式excel依赖包 -- ...
- logging日志模块_python
一.logging模块 1.功能 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设 ...
- 基于alpine的php-fpm扩展swoole和pdo_mysql
vim Dockerfile 插入一下内容 FROM php:fpm-alpine RUN echo http://mirrors.aliyun.com/alpine/v3.10/main>/e ...
- [Codechef - AASHRAM] Gaithonde Leaves Aashram - 线段树,DFS序
[Codechef - AASHRAM] Gaithonde Leaves Aashram Description 给出一棵树,树的"N"节点根植于节点1,每个节点'u'与权重a[ ...
- 访问windows共享无法分配内存问题解决
设置:“HKLMSYSTEMCurrentControlSetControlSession ManagerMemory ManagementLargeSystemCache” 为 “1″ 设置:“HK ...
- UIAutomation踩坑
最近有这样一个需要,在一个AppDomain中通过UIAutomation做一些操作,并在操作完成后卸载掉这个AppDomain.然而在卸载这个AppDomain时,总会出现System.Cannot ...
- 第五十三篇 Linux相关——Web服务器
No.1. Apache基本操作 安装:sudo yum -y install httpd 启动:service httpd start 停止:service httpd stop 查看服务运 ...