STM32
直播中

低调de炫耀爱

11年用户 762经验值
私信 关注
[问答]

如何利用CUBEMX去实现USMART呢

USMART是什么?

如何利用CUBEMX去实现USMART呢?有哪些步骤?

回帖(1)

王丹青

2021-12-14 11:36:14
1.USMART是什么?

使用USMART,你可以轻易的修改函数参数、查看函数运行结果,从而快速解决问题。
比如你调试一个摄像头模块,需要修改其中的几个参数来得到最佳的效果,普通的做法:写函数→修改参数→下载→看结果→不满意→修改参数→下载→看结果→不满意….不停的循环,直到满意为止。
这样做很麻烦不说,单片机也是有寿命的,老这样不停的刷,很折寿的。而利用USMART,则只需要在串口调试助手里面输入函数全称以及参数,然后直接使用串口发送给单片机,就执行了一次参数调整,不满意的话,你在串口调试助手修改参数再发送就可以了,直到你满意为止。这样,修改参数十分方便,不需要编译、不需要下载、不会让单片机折寿。
主要作用,方便代码的测试和调试
2.CUBEMX实现USMART步骤过程

(1)选择自己的芯片,我是用的是“STM32F103RET6”,因此选中如图所示的芯片。





(2)烧录口和时钟设置:










(3)加载定时器文件“stm32f1xx_hal_tim.h”




在这里值得注意的是:USMART文件用到了定时器4,初始化过程中需要用到定时器的结构体(定时器1,2,3…结构体是都是一样的),如果你本身的工程里面用到了定时器,那么可以直接跳过第(3)步。
如果工程当中没有用到定时器,你需要随便打开一个定时器,主要用来让生成的“uvprojx”工程加载文件“stm32f1xx_hal_tim.h”,这样在USMART文件中定义的“”TIM_HandleTypeDef”结构体时候不会报错。
本例程是测试历程,没有专门用到定时器,所以我使用到了第(3)步,加载“stm32f1xx_hal_tim.h”,不让USMART文件中的“TIM_HandleTypeDef”报错。
(4)USART1串口设置:















以上是串口的配置信息。
最后生成KEIL5的工程文件。
(5)USMART文件内容以及配置方法





把USMART文件放置如图所示处,文件内容如图所示。





配置步骤如上图所示。这样USMART里面的头文件路径设置完成。





在上图添加文件夹,并增加文件“usmart.c/usmart_config.c/usmart_str.c”文件。
这样工程文件就已经生成。
(6)代码配置:
在main.c文件中添加头文件#include “usmart.h”, usmart_dev.init(72);,屏蔽 //MX_TIM1_Init(); 函数。在串口中断中添加:
void USART1_IRQHandler(void)
{
/* USER CODE BEGIN USART1_IRQn 0 /
Usmart_Rev_Pro();
/
USER CODE END USART1_IRQn 0 /
HAL_UART_IRQHandler(&huart1);
/
USER CODE BEGIN USART1_IRQn 1 */
/* USER CODE END USART1_IRQn 1 */
}
测试程序我添加在了gpio.c文件中,
void Led_State_Test(GPIO_PinState Sta)
{
HAL_GPIO_WritePin(GPIOC,LED1_Pin,Sta);
}
void Delay_Test(uint32_t ms)
{
HAL_Delay(ms);
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分