• 记录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到工程中

  • 相关阅读:
    【题解】小Z的袜子
    浅谈最小生成树
    【题解】钻石收藏家
    浅谈线段树
    浅谈拓扑排序
    浅谈树的直径和树的重心
    浅谈求逆序对
    浅谈欧拉回路
    浅谈离散化
    浅谈高斯消元
  • 原文地址:https://www.cnblogs.com/QQ2962269558/p/11474638.html
Copyright © 2020-2023  润新知