STM32CubeMX 不生成main()函数入口
程序员文章站
2022-03-16 19:26:21
...
前言
用STM32CubeMX 生成的代码里有很多注释,看代码时候觉得很碍眼.当然也可以删除,如果再次生成代码的话注释也一样生成,而且定义的变量 声明 私有函数必须放在 "USER CODE BEGIN"和"USER CODE END"之间写,否则重新生成的代码会覆盖你写的代码.
为了能有干净写代码环境于是将main()函数入口放置在自己建的.c文件里,尽量不动STM32CubeMX生成的代码,下面是步骤
1. 配置好参数后在ProjectManage里 把不生成main()的勾打上
2. 在 Advanced Sett 里把 Visibility(Static) 前面的勾去掉,因为需要在自己建的.c文件里调用函数
然后生成代码.
新建自己的.C文件
生成的main.c文件里没有main()入口,然后自己新建个.c文件把main()入口放进去,中断的话可以使用回调函数,一样放在这个.c的文件里
user.c
#include "main.h"
//调用函数,第2步里去掉Static是为了能在外部文件调用函数
void SystemClock_Config(void);
void MX_GPIO_Init(void);
void MX_USART1_UART_Init(void);
int main(void)//int 类型
{
//这些初始化要记得加上
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
while (1)
{
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
HAL_Delay(500);
}
}
/*EXTI_回调函数*/
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
UNUSED(GPIO_Pin);
if (GPIO_Pin == GPIO_PIN_2)
{
//中断处理代码
}
}
注意:用到中断的话需要生成中断服务函数入口和调用处理函数(默认生成),core内核的中断函数不用可以去掉,只保留System tick timer 就可以了
推荐阅读
-
asp.net core 3.1 入口:Program.cs中的Main函数
-
51ak带你看MYSQL5.7源码1:main入口函数
-
C语言中的main函数为什么被称作程序入口
-
asp.net core 3.1 入口:Program.cs中的Main函数
-
51ak带你看MYSQL5.7源码1:main入口函数
-
C语言中的main函数为什么被称作程序入口
-
STM32CubeMX 不生成main()函数入口
-
JavaScript学习笔记(三):JavaScript也有入口Main函数_javascript技巧
-
JavaScript学习笔记(三):JavaScript也有入口Main函数_javascript技巧