STM32CubeMX 重新生成代码时,中断回调函数内容消失
使用STM32CubeMX生成代码后,在回调函数HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)中添加自己的代码。若再次使用STM32CubeMX生成代码,回调函数中,自己写的代码消失,这个要怎么解决?
<div>/**
* @briefEXTI line detection callback
* @param GPIO_Pin: Specifies the pins connected EXTI line
* @retval None
*/
__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
/* Prevent unused argument(s) compilation warning */
UNUSED(GPIO_Pin);
/* NOTE : This function Should not be modified, when the callback is needed,
the HAL_GPIO_EXTI_Callback could be implemented in the user file
*/ </div><div>
</div><div>HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);//使用STM32CubeMX重新生成代码,用户代码消失。
}</div>
可以再在main.c重寫 HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)這個函數,因為那邊選告成__weak所以重寫後會以你重寫的為主。
/* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
}
/* USER CODE END 4 */ cube重新生成时在/* USER CODE BEGIN X */和/* USER CODE END X */
之间的用户函数是不会变的,其他的都可能会变还有在选项里面设置
注意,自己写的代码。要在类似* USER CODE BEGIN 0 */和/* USER CODE END 0 */之间,否则,cube重新生成的时候,会删除。 哈哈,当年好菜^_^
二楼是对的
页:
[1]