zoukankan      html  css  js  c++  java
  • 记录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到工程中

  • 相关阅读:
    python学习笔记(十五)-异常处理
    python学习笔记(十四)python实现发邮件
    python学习笔记(十三)-python对Excel进行读写修改操作
    python学习笔记(十二)-网络编程
    python学习笔记(十一)-python程序目录工程化
    python学习笔记(九)-函数2
    python学习笔记(八)-模块
    勿忘初心,勇往前行
    【tp6】解决Driver [Think] not supported.
    【Linux】LNMP1.6 环境报500错误解决方法
  • 原文地址:https://www.cnblogs.com/QQ2962269558/p/11474638.html
Copyright © 2011-2022 走看看