0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于RoboMasterC型开发板的RT-Thread使用分享(一)

RTThread物联网操作系统 来源:未知 2023-01-05 12:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

假期期间打算开一个坑,和大家分享下基于RoboMaster开发板C型上RT-Thread使用,本系列文章计划是给刚接触STM32和RT-Thread的同学看的,讲的会稍微基础一点。

硬件与开发环境介绍


开发板:

本次选用的开发板是大疆创新的RoboMaster开发板C型,其上面采用高性能的STM32F407IG芯片。开发板C型具有如下外设:

用户自定义LED、5V接口、BOOT配置接口、micro USB接口、SWD接口、按键、可配置I/O接口、UART接口、CAN总线接口、PWM接口、DBUS接口、数字摄像头FPC接口、蜂鸣器、电压检测ADC、六轴惯性测量单元和磁力计。

这个也是我可以找到体积最小的板载陀螺仪的开发板,常用的接口也都有,很适合用在控制上。

450571c4-8cae-11ed-bfe3-dac502259ad0.png

软件环境:

IDE:RT-Thread Studio

RT-Thread:V4.1.0

STM32CubeMx:V6.7.0

STM32CubeProgrammer:V2.11.0

STM32CubeMonitor:V1.4.0

我平时开发常用的IDE实际上是Jetbrains家的Clion但是为了教程的通用性就选择了免费的RT-Thread Studio。

教程第一步:点灯

45870d2e-8cae-11ed-bfe3-dac502259ad0.png

本次我们选择UART1作为我们的控制台串口,根据原理图我们得知发送脚为PA9,接收脚为PB7。

因此我们创建项目的选择如下

45ce0652-8cae-11ed-bfe3-dac502259ad0.png

之后我们需要在CubeMX Setting中进行时钟树和引脚的配置。

在 System Core 下选择 RCC 选项,在 RCC mode and Configuration 中的 High Speed

Clock(HSE)下选择 Crystal/Ceramic Resonator

45dd968a-8cae-11ed-bfe3-dac502259ad0.png

之后进行时钟树的配置,我们需要修改红框内的数据如下图

45eac83c-8cae-11ed-bfe3-dac502259ad0.png

配置的根据如下:

Input frequency这个是根据板载的外部高速晶振来设置的,具体板子具体设置。

PLL的信号来源我们这里选择HSE(外部高速时钟),不选择HSI(内部高速时钟)是由于HSI时钟信号是由RC振荡电路产生的精度相对较差,而HSE时钟信号是由石英晶体产生精度相对而言更高,所以选择HSE。

后面灰色框内的M、N、P是PLL(锁相环)的分频倍频参数,将我们输入的HSE或者HSI时钟信号进行分频、倍频得到更高的时钟频率。这里我们配置的原因是因为我们希望SYSCLK(系统时钟)的频率达到STM32F407可到最高的168MHz。

系统时钟可以由三种时钟源来驱动

  • HSI振荡器时钟

  • HSE振荡器时钟

  • Main PLL时钟

而HSI和HSE在此处都不能到达168MHz因此我们这里我们这里选择通过PLL倍频后驱动SYSCLK。

因此PLL的三个参数也是通过凑出倍频后得到168MHz计算得到的。

最后我们修改的两处为配置AHB频率的预分频器,这里我们需要根据STM32F4xx中文参考手册来配置。根据下图我们可知APB1的最大频率为42MHz,APB2的最大频率为84MHz,因此我们的分频值分别设置为4和2来匹配最大频率。

45fa0ea0-8cae-11ed-bfe3-dac502259ad0.png

后面我们点击顶部的 Pinout & Configuartion,选择 SYS,在 Debug 下拉框中选择 Serial Wire。

46094302-8cae-11ed-bfe3-dac502259ad0.png

随后配置命令行串口所需的UART1引脚,配置哪一个引脚需要根据开发板原理图来设置,用于STM32许多引脚都有复用功能的,所以哪个引脚有什么功能是需要根据硬件来看的。原来创建工程的时候我们就看了原理图发送脚为PA9,接收脚为PB7,所以这里我们就直接设置。

4619801e-8cae-11ed-bfe3-dac502259ad0.png

由于我们这里要进行点灯所以我们来设置一下GPIO。根据原理图我们知道LED_B、LED_G、LED_R引脚分别为PH10、PH11、PH12,我们在CubeMX中进行配置。

46305d16-8cae-11ed-bfe3-dac502259ad0.png

把这三个引脚设置为GPIO_Output。

4641bf02-8cae-11ed-bfe3-dac502259ad0.png

随后点击GENERATE CODE生成代码

根据原理图我们可以发现三个引脚不处于高电平的输出状态,那么三极管的控制端将会被下拉电阻拉为低电平,当 LED_B、LED_G 和 LED_R 处于高电平的输出状态,通过原理图中 1kΩ与 10kΩ的分压后,三极管的基极控制端将变成高电平,故而三级管的控制端电压将变成高电平。因此引脚为高电平时,LED灯亮。

465a9d24-8cae-11ed-bfe3-dac502259ad0.png

在main函数中编写如下代码进行点灯。

 1/*
 2*Copyright(c)2006-2022,RT-ThreadDevelopmentTeam
 3*
 4*SPDX-License-Identifier:Apache-2.0
 5*
 6*ChangeLogs:
 7*DateAuthorNotes
 8*2022-12-29RT-Threadfirstversion
 9*/
10#include
11#include
12#include
13/*定义LED引脚*/
14#ifndefLED_B_PIN
15#defineLED_B_PINGET_PIN(H,10)
16#endif
17#ifndefLED_G_PIN
18#defineLED_G_PINGET_PIN(H,11)
19#endif
20#ifndefLED_R_PIN
21#defineLED_R_PINGET_PIN(H,12)
22#endif
23intmain(void)
24{
25/*设置LED引脚为输出模式*/
26rt_pin_mode(LED_B_PIN,PIN_MODE_OUTPUT);
27rt_pin_mode(LED_G_PIN,PIN_MODE_OUTPUT);
28rt_pin_mode(LED_R_PIN,PIN_MODE_OUTPUT);
29intcount=1;
30while(count++)
31{
32rt_pin_write(LED_B_PIN,PIN_HIGH);
33rt_thread_mdelay(500);
34rt_pin_write(LED_B_PIN,PIN_LOW);
35rt_pin_write(LED_G_PIN,PIN_HIGH);
36rt_thread_mdelay(500);
37rt_pin_write(LED_G_PIN,PIN_LOW);
38rt_pin_write(LED_R_PIN,PIN_HIGH);
39rt_thread_mdelay(500);
40rt_pin_write(LED_R_PIN,PIN_LOW);
41}
42returnRT_EOK;
43}

最终效果为红、绿、蓝三个灯依次亮灭。

46806d42-8cae-11ed-bfe3-dac502259ad0.png

本次分享就到此为止,感谢大家的观看,我也会尽力更新这个系列的!

————————————————

版权声明:

本文为RT-Thread论坛用户「goldengrandpa」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://club.rt-thread.org/ask/article/09dffc578f32d85d.html


你可以添加微信:rtthread2020 为好友,注明:公司+姓名,拉进RT-Thread官方微信交流群!

4692a688-8cae-11ed-bfe3-dac502259ad0.gif

点击阅读原文回看开发者大会


原文标题:基于RoboMasterC型开发板的RT-Thread使用分享(一)

文章出处:【微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RT-Thread
    +关注

    关注

    32

    文章

    1543

    浏览量

    44295

原文标题:基于RoboMasterC型开发板的RT-Thread使用分享(一)

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    首搭RT-Thread程翧车控平台| RT-Thread程翧 S32K344 快速原型开发平台正式上市!| 产品动态

    在智能汽车迈向高集成与高安全的时代,VCU/ECU开发正面临效率与可靠性的双重考验。依赖单硬件或拼凑软件方案的传统模式,已成为制约创新的瓶颈。为此,RT-Thread带来里程碑式的解决方案
    的头像 发表于 10-31 11:53 513次阅读
    首搭<b class='flag-5'>RT-Thread</b>程翧车控平台| <b class='flag-5'>RT-Thread</b>程翧 S32K344 快速原型<b class='flag-5'>开发</b>平台正式上市!| 产品动态

    如何移植rt-thread到野火imx6ull开发板上?

    求助如何将rt-thread移植到野火imx6ull(coretex-A7)开发板上,官方的bsp中没有imx6ull
    发表于 09-29 06:25

    2025年RT-Thread开发者巡回培训报名正式启动!

    亲爱的RT-Thread社区成员们:新程再启,共赴热爱!2025年RT-Thread开发者巡回培训正式启动报名!今年,我们选择了西安、武汉、北京、杭州、深圳、上海、成都这7座城市,为大家带来
    的头像 发表于 09-27 10:39 1148次阅读
    2025年<b class='flag-5'>RT-Thread</b><b class='flag-5'>开发</b>者巡回培训报名正式启动!

    使用RT-Thread studio 开发RT-Thread Nano项目的时候 串口的驱动是要自己写吗?

    刚入坑。使用RT-Thread studio 开发RT-Thread 标准项目的时候直接使用里边的串口uart_dev=rt_device
    发表于 09-26 08:14

    RT-Thread生态再壮大!六大硬核新品,同步上线 | 产品动态

    六大好物上新!RT-Thread生态迎来重磅更新!从核心硬件到强大工具,我们为您准备了6件全方位的开发利器:RT-ThreadART-PiII开发板STM32H7R7核心
    的头像 发表于 09-12 18:49 920次阅读
    <b class='flag-5'>RT-Thread</b>生态再壮大!六大硬核新品,同步上线 | 产品动态

    明晚!基于RT-Thread 的 PID 控制实践,从驱动到算法到监控,次学会!| 问学直播

    RT-Thread简单PID控制实践》精彩直播!本次直播将基于RT-Thread实时操作系统与NXPFRDM-MCXA156开发板,围绕驱动配置、控制算法实现、远
    的头像 发表于 09-01 17:04 1107次阅读
    明晚!基于<b class='flag-5'>RT-Thread</b> 的 PID 控制实践,从驱动到算法到监控,<b class='flag-5'>一</b>次学会!| 问学直播

    Windows上使用ENV工具开发基于先楫MCU的RT-Thread应用

    前言Env是RT-Thread推出的开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的menuconfig提供了简单易用的配置剪裁
    的头像 发表于 08-29 12:22 964次阅读
    Windows上使用ENV工具<b class='flag-5'>开发</b>基于先楫MCU的<b class='flag-5'>RT-Thread</b>应用

    在Ubuntu上开发基于先楫MCU的RT-Thread应用指南

    1、前言RT-ThreadEnv是RT-Thread推出的开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的menu
    的头像 发表于 08-29 12:22 1244次阅读
    在Ubuntu上<b class='flag-5'>开发</b>基于先楫MCU的<b class='flag-5'>RT-Thread</b>应用指南

    【好书推荐】RT-Thread第20本相关书籍!《嵌入式实时操作系统RT-Thread原理与应用》| 技术集结

    01内容简介ContentSummary本书为读者提供了个全面、系统的RT-Thread学习指南,旨在帮助初学者及有经验的开发者掌握RT-Thread实时操作系统和STM32嵌入式微
    的头像 发表于 08-24 10:05 694次阅读
    【好书推荐】<b class='flag-5'>RT-Thread</b>第20本相关书籍!《嵌入式实时操作系统<b class='flag-5'>RT-Thread</b>原理与应用》| 技术集结

    开发板畅游网络:RT-Thread CherryUSB 驱动 RNDIS 模块详解 | 技术集结

    本文通过在RT-Thread操作系统上,使用CherryUSB软件包作为USBHost协议栈,驱动AIR780E4GCat.1模块的RNDIS功能,并成功接入lwIP网络协议栈,最终在开发板上实现了
    的头像 发表于 07-02 17:04 2998次阅读
    让<b class='flag-5'>开发板</b>畅游网络:<b class='flag-5'>RT-Thread</b> CherryUSB 驱动 RNDIS 模块详解 | 技术集结

    人形机器人敏捷开发新路径:RT-Thread以软件底座破解复杂系统难题 | 新闻速递

    5月29日,2025机器人开发者大会在上海张江科学城拉开帷幕,RT-Thread睿赛德受邀参会,与宇树、智元、傅利叶等企业共话机器人行业解决方案。在人形机器人本体专题论坛上,RT-Thread睿赛德
    的头像 发表于 06-04 14:03 1037次阅读
    人形机器人敏捷<b class='flag-5'>开发</b>新路径:<b class='flag-5'>RT-Thread</b>以软件底座破解复杂系统难题 | 新闻速递

    RT-Thread审核团招募: 深度参与开源RTOS社区治理与演进

    全球开发者招募:RT-Thread审核团(ReviewTeam)正式开放申请!在开源的世界里,代码审查(CodeReview)是保证软件质量、促进技术交流的关键环节。RT-Thread作为全球领先
    的头像 发表于 05-21 18:02 1070次阅读
    <b class='flag-5'>RT-Thread</b>审核团招募: 深度参与开源RTOS社区治理与演进

    如何将RT-Thread移植到NXP MCUXPressoIDE上

    RT-Thread默认支持的IDE只有IAR 和 Keil, 那如何将RT-Thread移植到NXP MCUXPressoIDE上呢?本文内容比较简单但稍有琐碎,希望对有需要的小伙伴有所帮助。
    的头像 发表于 02-13 10:37 2444次阅读
    如何将<b class='flag-5'>RT-Thread</b>移植到NXP MCUXPressoIDE上

    Deepseek上单片机?RT-Thread上跑通大语言模型

    前言单片机也能聊天?RT-Thread上跑通大语言模型在RT-Thread论坛上忽然看到了单片机和大模型对话的文章,想着春节期间看到大语言模型的热度持续攀升,恰巧手头有块RA8D1VisionBoard开发板,于是尝试着在Vis
    的头像 发表于 02-07 18:59 2381次阅读
    Deepseek上单片机?<b class='flag-5'>RT-Thread</b>上跑通大语言模型

    RT-Thread应用开发寒假师资培训——西安站

    随着物联网和智能系统的快速发展,嵌入式成为当前最热门最有发展前途的IT应用领域之。为进步提升全国大学生在嵌入式芯片及系统设计领域的创新能力,特别是针对物联网应用开发RT-Thread
    的头像 发表于 12-11 01:06 1029次阅读
    <b class='flag-5'>RT-Thread</b>应用<b class='flag-5'>开发</b>寒假师资培训——西安站