记录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 ...
随机推荐
- JUC-线程间通信
面试题: 两个线程,一个线程打印1-52,另一个打印字母A-Z打印顺序为12A34B...5152Z, 要求用线程间通信 线程间通信:1.生产者+消费者2.通知等待唤醒机制 多线程编程模版中 1.判断 ...
- AcWing 482. 合唱队形
#include<iostream> using namespace std ; ; int f[N],g[N]; int w[N]; int main() { int n; cin> ...
- oracle数据库操作 接口封装
1.如下 using Oracle.ManagedDataAccess.Client; using System; using System.Collections.Generic; using Sy ...
- jsp中的javascript的$(document).ready( function() { $("#loginForm").validate()
转自:https://bbs.csdn.net/topics/392459787?list=71147533 下面是jsp页面中的JavaScript代码 $(document).ready( fun ...
- 如何在linux主机上运行/调试 arm/mips架构的binary
如何在linux主机上运行/调试 arm/mips架构的binary 原文链接M4x@10.0.0.55 本文中用于展示的binary分别来自Jarvis OJ上pwn的add,typo两道题 写这篇 ...
- matplotlib 做图通过弹出窗口展示 spyder
tools =>preferences=>Ipython console=>Graphics Graphics backend 中Backend 由Inline改为 Automati ...
- Python爬取mc皮肤【爬虫项目】
首先,找到一个皮肤网站,其中一个著名的皮肤网站就是 https://littleskin.cn .进入网站,我们就会见到一堆皮肤,这就是今天我们要爬的皮肤.给各位分享一下代码. PS:另外很多人在学习 ...
- javascript当中Function用法
4)Function用法 例 3.4.1 <head> <meta http-equiv="content-type" content="text ...
- oracle查询第几行到第几行的数据
我想查询10条到20条的数据 注意: 1.大数在前,小数在后面 2.都是小于 () minus (); 运行结果:
- Apache Kafka(九)- Kafka Consumer 消费行为
1. Poll Messages 在Kafka Consumer 中消费messages时,使用的是poll模型,也就是主动去Kafka端取数据.其他消息管道也有的是push模型,也就是服务端向con ...