使用RT-Thread Studio创建基于芯片工程

一、前言

前面使用RT-Thread Studio创建基于BSP工程,而只有已经做好提交到RT-Thread的BSP才能用,如果想使用RT-Thread Studio基于自己的开发板创建一个工程怎么做呢?只需要创建基于芯片的工程即可,这里我使用中移物联的NBIOT开发进行使用,芯片是STM32F103RET6。


二、创建使用默认HSI时钟工程

1、在创建的时候选择基于芯片,选择对应的芯片型号,并选择控制台串口,其他步骤和创建基于BSP的类似,然后点击完成
在这里插入图片描述

2、如果使用默认的时钟设置,是使用芯片内部的HSI时钟,构建工程,然后下载到芯片观察效果
在这里插入图片描述

在这里插入图片描述


三、使用外部晶振作为时钟

如果使用外面晶振作为时钟,需要修改时钟配置,让工程和自己的板子适配,否则时钟不对,会影响正常使用。

1、在drviers目录下,找到stm32f1xx_hal_conf.h头文件,修改HSE_VALUE的值,中移物联的NBIOT开发板使用的是12M紧张,因此这里的#define HSE_VALUE ((uint32_t)8000000)需要改为#define HSE_VALUE ((uint32_t)12000000),如果使用的是8M外部竞争晶振,只需为默认即可在这里插入图片描述
在这里插入图片描述
2、修改board.cSystemClock_Config函数,修改如下,这里需要注意的是,如果RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;,前面设置HSE_VALUE((uint32_t)12000000),因此12*6=72M,根据实际需要,可以修改RCC_PLL_MUL6来修改时钟频率。

void SystemClock_Config(void)
{
	RCC_OscInitTypeDef RCC_OscInitStruct;
	RCC_ClkInitTypeDef RCC_ClkInitStruct;

    /**Initializes the CPU, AHB and APB busses clocks 
    */
	RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
	RCC_OscInitStruct.HSEState = RCC_HSE_ON;
	RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
	RCC_OscInitStruct.HSIState = RCC_HSI_ON;
	RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
	RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
	RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;
	if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
	{
		_Error_Handler(__FILE__, __LINE__);
	}

    /**Initializes the CPU, AHB and APB busses clocks 
    */
	RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
	RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
	RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
	RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
	RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

	if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
	{
		_Error_Handler(__FILE__, __LINE__);
	}
}

3、构建工程,并下载到芯片,观察效果
在这里插入图片描述

发布了54 篇原创文章 · 获赞 92 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/Sanjay_Wu/article/details/103732609