[MCU] 【CW32L052测评】 rt-thread nano之FinSH组件

TL-LED   2023-7-19 15:39 楼主

这篇来添加下FinSH组件,实现串口交互操作。在https://bbs.eeworld.com.cn/thread-1250156-1-1.html这篇的基础上修改。

 

一、添加串口驱动

要实现FinSH组件串口的操作,需要添加串口的收发驱动程序。

 

1.1、使能串口

使能rt-thread nano 系统下的串口功能,打开配置头文件修改

100.png

 

使能后,在头文件中会出现 RT_USING_CONSOLE的定义

101.png

 

1.2、添加串口初始化程序

102.png

 

init_uart.c

void init_uart(void)
{
	UART_InitTypeDef UART_InitStructure = {0};
	GPIO_InitTypeDef GPIO_InitStructure = {0};
	RCC_AHBPeriphClk_Enable(DEBUG_UART_GPIO_CLK, ENABLE);
	DEBUG_UART_APBClkENx(DEBUG_UART_CLK, ENABLE);
	
	//UART TX RX ??
	DEBUG_UART_AFTX;
	DEBUG_UART_AFRX;
	
	GPIO_InitStructure.Pins = DEBUG_UART_TX_GPIO_PIN;
	GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
	GPIO_Init(DEBUG_UART_TX_GPIO_PORT, &GPIO_InitStructure);

	GPIO_InitStructure.Pins = DEBUG_UART_RX_GPIO_PIN;
	GPIO_InitStructure.Mode = GPIO_MODE_INPUT_PULLUP;
	GPIO_Init(DEBUG_UART_RX_GPIO_PORT, &GPIO_InitStructure);
	
	UART_InitStructure.UART_BaudRate = DEBUG_UART_BaudRate;
	UART_InitStructure.UART_Over = UART_Over_16;
	UART_InitStructure.UART_Source = UART_Source_PCLK;
	UART_InitStructure.UART_UclkFreq = DEBUG_UART_UclkFreq;
	UART_InitStructure.UART_StartBit = UART_StartBit_FE;
	UART_InitStructure.UART_StopBits = UART_StopBits_1;
	UART_InitStructure.UART_Parity = UART_Parity_No ;
	UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_None;
	UART_InitStructure.UART_Mode = UART_Mode_Rx | UART_Mode_Tx;
	UART_Init(DEBUG_UARTx, &UART_InitStructure);
	
}

 

1.3、添加串口输出函数

修改void rt_hw_console_output(const char *str)函数内容

103.png

 

二、添加FinSH组件

 

2.1、在项目中添加FinSH组件

104.png

 

2.2、添加后,在项目中会增加这几个文件

105.png

 

2.3、配置使能FinSH组件

106.png

 

2.4、添加串口接收函数

在finsh_port.c中修改rt_hw_console_getchar()函数

107.png

 

三、程序运行

 

修改完成后,编译项目,下载到开发运行

串口下输入指令操作

108.png

 

 

 

本帖最后由 TL-LED 于 2023-7-19 17:46 编辑

回复评论 (5)

6666,这个组件占用内存大吗?
点赞  2023-7-20 08:25

FinSH这个组件我觉得是RTThread的精髓。

点赞  2023-7-20 10:40
引用: lugl4313820 发表于 2023-7-20 08:25 6666,这个组件占用内存大吗?

这个没测试过

点赞  2023-7-20 22:01
引用: wangerxian 发表于 2023-7-20 10:40 FinSH这个组件我觉得是RTThread的精髓。

确实是,串口交互命令

点赞  2023-7-20 22:01

一个小终端吗?有什么高级命令没?

默认摸鱼,再摸鱼。2022、9、28
点赞  2023-7-24 20:23
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复