这篇文章是记录rt-thread项目创建过程,根据自己的开发板来创建项目工程文件。具体的过程如下:
一、创建项目工程文件
这个根据自己开发板的硬件来选择创建项目的方式,我自己的板子和RT-Thread例程里面STM32F107的板子硬件环境比较接近,就使用现有的板子例程来创建工程,这个过程会简单些。
1.1、基于开发板的方式创建工程项目文件


1.2、修改例程
项目工程创建好后,在main.c中有驱动LED灯的例程。

这里使用的是PD13端口驱动LED,我的板子是使用PC5驱动LED,在这里修改下端口,编译、下载后程序运行,创建的项目是可运行的。
二、修改打印端口
创建的例程使用的是串口2,我的板子是串口1,需要将串口修改为串口1。
2.1、选择CubeMX来配置串口引脚

2.2、选择串口
选择串口1

2.3、修改串口K配置文件
修改board下的Kconfig文件

修改完成后,使用env工具来配置串口
2.4、env软件配置串口
在项目工程的文件下,打开env工具

执行menuconfig命令,来选择串口1,去掉串口2


2.5、修改串口端口配置文件
2.5.1、在stm32f1xx_hal_msp.c 文件中增加下面内容

/**
* @brief UART MSP Initialization
* This function configures the hardware resources used in this example
* @param huart: UART handle pointer
* @retval None
*/
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(huart->Instance==USART2)
{
/* USER CODE BEGIN USART2_MspInit 0 */
/* USER CODE END USART2_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_USART2_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
/**USART2 GPIO Configuration
PD5 ------> USART2_TX
PD6 ------> USART2_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_6;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
__HAL_AFIO_REMAP_USART2_ENABLE();
/* USART2 interrupt Init */
HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USART2_IRQn);
/* USER CODE BEGIN USART2_MspInit 1 */
/* USER CODE END USART2_MspInit 1 */
}
if(huart->Instance==USART1)
{
/* Peripheral clock enable */
__HAL_RCC_USART1_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/**USART1 GPIO Configuration
PA9 ------> USART1_TX
PA10 ------> USART1_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_9;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
__HAL_AFIO_REMAP_USART1_DISABLE();
/* USART1 interrupt Init */
HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USART1_IRQn);
}
}
2.5.2、修改rtconfig.h
将打印串口设置为uart1

三、程序运行
下载程序后,复位板卡,串口输出内容:

程序运行正常。 |