You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.9 KiB
98 lines
2.9 KiB
//
|
|
// Created by iflyt on 2025/2/27.
|
|
//
|
|
|
|
#include "bsp.h"
|
|
#include "LED/exti_key_manager.h"
|
|
#include "uart_cmd/cmd_receive_service.h"
|
|
/*
|
|
*********************************************************************************************************
|
|
* 函 数 名: bsp_Init
|
|
* 功能说明: 初始化所有的硬件设备。该函数配置CPU寄存器和外设的寄存器并初始化一些全局变量。只需要调用一次
|
|
* 形 参:无
|
|
* 返 回 值: 无
|
|
*********************************************************************************************************
|
|
*/
|
|
void bsp_Init(void)
|
|
{
|
|
/*
|
|
STM32H7xx HAL 库初始化,此时系统用的还是H7自带的64MHz,HSI时钟:
|
|
- 调用函数HAL_InitTick,初始化滴答时钟中断1ms。
|
|
- 设置NVIV优先级分组为4。
|
|
*/
|
|
// HAL_Init();
|
|
/*
|
|
配置系统时钟到400MHz
|
|
- 切换使用HSE。
|
|
- 此函数会更新全局变量SystemCoreClock,并重新配置HAL_InitTick。
|
|
*/
|
|
// SystemClock_Config();
|
|
|
|
DBG_UART_Init();
|
|
|
|
// CMD_DMA_Init(); // 指令 收发 UART 初始化
|
|
CMD_UART_Init();
|
|
EXHAL_UART_BindUart("CMD_UART", &CMD_UART);
|
|
CmdReceiveService_Init(); // 接收指令,解析指令,执行指令
|
|
|
|
CAN1_Init();
|
|
LED_Init();
|
|
|
|
#if 1
|
|
EX_GPIO_Init(); // 外部中断初始化
|
|
MYI2C_Init(&SENx,2000,0x38); //温湿度传感器 2000:读取数据周期2S; 0x38:AHT20地址
|
|
MX_ADC1_Init();
|
|
#endif
|
|
#if 0
|
|
app_init();
|
|
#endif
|
|
}
|
|
|
|
#if 0
|
|
/*
|
|
*********************************************************************************************************
|
|
* 函 数 名: Error_Handler
|
|
* 形 参: file : 源代码文件名称。关键字 __FILE__ 表示源代码文件名。
|
|
* line :代码行号。关键字 __LINE__ 表示源代码行号
|
|
* 返 回 值: 无
|
|
* Error_Handler(__FILE__, __LINE__);
|
|
*********************************************************************************************************
|
|
*/
|
|
void Error_Handler(char *file, uint32_t line)
|
|
{
|
|
/*
|
|
用户可以添加自己的代码报告源代码文件名和代码行号,比如将错误文件和行号打印到串口
|
|
printf("Wrong parameters value: file %s on line %d\r\n", file, line)
|
|
*/
|
|
|
|
/* 这是一个死循环,断言失败时程序会在此处死机,以便于用户查错 */
|
|
__disable_irq();
|
|
|
|
if (line == 0)
|
|
{
|
|
return;
|
|
}
|
|
/* USER CODE BEGIN Error_Handler_Debug */
|
|
/* User can add his own implementation to report the HAL error return state */
|
|
while (1)
|
|
{
|
|
}
|
|
/* USER CODE END Error_Handler_Debug */
|
|
}
|
|
|
|
|
|
/**
|
|
* @brief This function is executed in case of error occurrence.
|
|
* @retval None
|
|
*/
|
|
void Error_Handler(void)
|
|
{
|
|
/* USER CODE BEGIN Error_Handler_Debug */
|
|
/* User can add his own implementation to report the HAL error return state */
|
|
__disable_irq();
|
|
while (1)
|
|
{
|
|
}
|
|
/* USER CODE END Error_Handler_Debug */
|
|
}
|
|
#endif
|