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

  • 相关阅读:
    洛谷 P1284 三角形牧场WD
    luogu P3817 小A的糖果
    P3374 【模板】树状数组 1
    线程与threading模块
    socketserver模块
    python 粘包问题及解决方法
    python 网络编程
    类的进阶四 反射和内置方法
    python hashlib模块 logging模块 subprocess模块
    类的进阶三
  • 原文地址:https://www.cnblogs.com/QQ2962269558/p/11474638.html
Copyright © 2020-2023  润新知