Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
入门学习
rt-thread studio 的学习与使用
发布于 2022-04-22 13:26:37 浏览:1737
订阅该版
[tocm] # RT -Thread 使用心得系列1 - 点亮LED 关注rt-thread studio 有一段时间了,刚发布的时候就下了使用了,只是当时水平有限(现在也不行),感觉操作不方便就放弃了。新版的studio已经有很大改进了。不过还是遇到了不少问题,我在把我之前的写的简单实例导入时,花了半个小时就是没有找到如何导入studio项目的入口。 ![3382e6a44cc3ce43f7cfc957c04f6a50.png](https://oss-club.rt-thread.org/uploads/20220422/3382e6a44cc3ce43f7cfc957c04f6a50.png) 希望有明白的大佬指点下。还好比较简单还是重新写一下。 以下是学习记录 开发环境:rt-thread studio V2.2.1 和 STM32CUBEMX V6.1 https://www.rt-thread.org/page/download.html#studio 开发板 : 金沙滩的stm32 芯片是 STM32F103ZET6 studio 官网使用百度网盘下载很快,cubemx更新103的库花了点时间。硬件随便,只要满足rt-thread开发即可。金沙滩是前几年买的,当时是看他们的单片机入门的,感觉很不错。买来一直吃灰,这次学习就用它了。为什么打开项目一直都是灰色的。 代码如下: ```c /* * Copyright (c) 2006-2022, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2022-04-21 RT-Thread first version */ /* * rt thread studio 使用心得 * * 1、使用device时一般要添加头文件#include
,在使用pin设备必须要添加 * 2、#define LED1_PIN GET_PIN(G,7),宏定义很方便,这个定义在#include "drv_common.h",不知道为什么不放在pin设备中 * 3、使用LOG_D("LED is on!");必须包含头文件#include
* 4、使用线程函数必须使用#include
,没使用线程可以屏蔽 * 5、关于适中的配置问题:需要配置board.C中的 * #define BSP_CLOCK_SOURCE ("HSE") * #define BSP_CLOCK_SOURCE_FREQ_MHZ ((int32_t)8) * Change Logs: * Date Author Notes * 2022-04-21 RT-Thread first version */ #include
#define DBG_TAG "main" #define DBG_LVL DBG_LOG #include
#include
// #include "drv_common.h" #define LED1_PIN GET_PIN(G,7) int main(void) { int count = 1; rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT); while (count++) { // LOG_D("LED is on!"); rt_pin_write(LED1_PIN, PIN_HIGH); rt_thread_mdelay(500); // LOG_D("LED is off!"); rt_pin_write(LED1_PIN, PIN_LOW); rt_thread_mdelay(500); } return RT_EOK; } void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** 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_MUL9; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } /** 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(); } } ``` ## rt thread studio 使用心得 * 1、使用device时一般要添加头文件#include
,在使用pin设备必须要添加 * 2、#define LED1_PIN GET_PIN(G,7),宏定义很方便,这个定义在#include "drv_common.h",不知道为什么不放在pin设备中 * 3、使用LOG_D("LED is on!");必须包含头文件#include
* 4、使用线程函数必须使用#include
,没使用线程可以屏蔽 * 5、关于适中的配置问题:需要配置board.C中的 * `#define BSP_CLOCK_SOURCE ("HSE")` * `#define BSP_CLOCK_SOURCE_FREQ_MHZ ((int32_t)8) ` * 第5点有待确认,新建项目时候studio也在提示说配置相关文件,我对此做了实验单纯修改上面的配置,把晶振去掉是照样可以起来的,本人小白无法通过指令获取系统时钟源是从外部还是内部时钟。为了进一步确认,我配置了cubemx,配置如下: ![image.png](https://oss-club.rt-thread.org/uploads/20220422/a676708562d06dfb911fdd47e7a47202.png.webp) 生成的代码参见上面代码后半部分。 代码替换后,去掉晶振发现不工作了,说明上述第5点只修改board.h中的配置是不行的,需要重新配置。这里很想问下,为什么不默认配置成外部晶振,或者有个选项,可以选择配置时钟源。基本上很少有项目使用内部晶振的。希望后续能改进。 以上是我这次使用的studio的经历分享。还是希望studio越做越好。后续会陆续更新一些文章用于记录我的学习过程。 最后吐槽一下文档编辑器实在不好用。
4
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
cgh198510
这家伙很懒,什么也没写!
文章
3
回答
6
被采纳
0
关注TA
发私信
相关文章
1
RT-Thread 野火F103霸道者V2 使用DAP下载为什么下载不了?
2
DAP下载如何自动复位?
3
按照入门教程装了RTTstudio 但是装完报错56个 重新下了 换个版本也是一样 是怎么回事呀?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
SFUD
msh
ulog
C++_cpp
MicroPython
本月问答贡献
三世执戟
5
个答案
1
次被采纳
RTT_逍遥
4
个答案
1
次被采纳
KunYi
4
个答案
1
次被采纳
xiaorui
1
个答案
1
次被采纳
JonasWen
1
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
3
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部