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
    +关注

    关注

    31

    文章

    1271

    浏览量

    39902

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

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

收藏 人收藏

    评论

    相关推荐

    基于恩智浦FRDM-MCXA153开发板实现RT-Thread的ADC驱动

    数转换器(ADC)是现代嵌入式系统中不可或缺的组件,它能将连续的模拟信号转换为离散的数字信号。本文将深入探讨如何在NXP的FRDM-MCXA153开发板上实现和使用RT-Thread的ADC驱动,为开发者提供
    的头像 发表于 11-01 12:29 199次阅读
    基于恩智浦FRDM-MCXA153<b class='flag-5'>开发板</b>实现<b class='flag-5'>RT-Thread</b>的ADC驱动

    开源共生 商业共赢 | RT-Thread 2024开发者大会报名启动!

    亲爱的RT-Thread开发者我们很高兴地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread
    的头像 发表于 10-29 08:06 195次阅读
    开源共生 商业共赢 | <b class='flag-5'>RT-Thread</b> 2024<b class='flag-5'>开发</b>者大会报名启动!

    NXP FRDM-MCXC444开发板RT-Thread环境下的上手过程

    NXP FRDM-MCXC444开发板款基于MCX C444 MCU的高性能开发板,它集成了丰富的硬件资源和接口,支持快速原型设计。本文将为读者提供份详细的
    的头像 发表于 10-12 11:51 311次阅读
    NXP FRDM-MCXC444<b class='flag-5'>开发板</b>在<b class='flag-5'>RT-Thread</b>环境下的上手过程

    【QEMU系列】不用开发板运行RT-Thread指南-ARM架构

    成为个门槛。本文将详细介绍如何在QEMU虚拟机的Vexpress-A9平台上运行RT-Thread,帮助开发者在没有实际硬件开发板的情况下,轻松体验和学习
    的头像 发表于 08-09 08:35 781次阅读
    【QEMU系列】不用<b class='flag-5'>开发板</b>运行<b class='flag-5'>RT-Thread</b>指南-ARM架构

    2024 RT-Thread全球巡回 线下培训火热来袭!

    亲爱的RT-Thread社区成员们:我们非常高兴地宣布,2024年RT-Thread全球开发者线下培训即将拉开帷幕!24年全球巡回培训将覆盖超10座城市及国家,为开发者提供
    的头像 发表于 08-07 08:35 886次阅读
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 线下培训火热来袭!

    【好书推荐】RT-Thread设备驱动开发指南

    强烈,他们迫切地希望有本可以指导他们在RT-Thread开发驱动的指南。为了解决开发者的燃眉之急,《RT-Thread设备驱动
    的头像 发表于 08-01 08:35 512次阅读
    【好书推荐】<b class='flag-5'>RT-Thread</b>设备驱动<b class='flag-5'>开发</b>指南

    开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用

    本期开发者:朱彦祖RT-Thread资深工程师,HPM6700/6400元老级开发者及骨灰级用户,先辑生态社区常驻优秀开发者,江湖人称杭州吴彦祖。背景最近在使用先辑HPM6750
    的头像 发表于 06-07 08:17 2611次阅读
    <b class='flag-5'>开发</b>者分享 | 基于先楫<b class='flag-5'>RT-Thread</b> BSP,使用CLion<b class='flag-5'>开发</b>应用

    先楫半导体所有开发板已上RT-Thread主线啦

    目前,先楫半导体在RT-Thread主线支持的开发板包含以下这些
    的头像 发表于 06-05 08:17 512次阅读
    先楫半导体所有<b class='flag-5'>开发板</b>已上<b class='flag-5'>RT-Thread</b>主线啦

    如何在PSoC62 Evaluation kit开发板上运行RT-Thread呢?

    本文主要介绍如何在PSoC62 Evaluation kit开发板上运行RT-Thread,如何连接CYW43012 WiFi蓝牙模组,以及如何进行WiFi联网、网络延迟、网络带宽测试。
    的头像 发表于 02-27 10:49 941次阅读
    如何在PSoC62 Evaluation kit<b class='flag-5'>开发板</b>上运行<b class='flag-5'>RT-Thread</b>呢?

    RT-Thread设备驱动开发指南基础篇—以先楫bsp的hwtimer设备为例

    RT-Thread设备驱动开发指南》书籍是RT-thread官方出品撰写,系统讲解RT-thread IO设备驱动开发方法,从三方面进行讲解
    的头像 发表于 02-20 16:01 1592次阅读
    <b class='flag-5'>RT-Thread</b>设备驱动<b class='flag-5'>开发</b>指南基础篇—以先楫bsp的hwtimer设备为例

    移植RT-THREAD在stm32开发板上,使用rt_kprintf不能正常打印的原因是什么?怎么解决?

    ) 问题: 复位开发板RT-Thread 标志也没有打印出来。 1、使用print可以打印; 2、使用内置的rt_kprintf 不能打印; 测试代码: 放在主函数的while(1)下
    发表于 02-20 06:24

    RT-Thread开发者大会系统控制分论坛动手实践指南

    本周六, RT-Thread 开发者大会在上海临港中心举行。 RT-Thread 开发者大会是嵌入式开发者的年度盛会,为
    的头像 发表于 12-22 18:15 473次阅读
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>开发</b>者大会系统控制分论坛动手实践指南

    【PSoC™62 for RT-ThreadRT-Thread携手英飞凌举办嵌入式网络应用开发沙龙,圆满落幕!

    2023年12月09日,深圳,全球半导体解决方案的领导者英飞凌科技(中国)有限公司(以下简称:英飞凌)与上海睿赛德电子科技有限公司(RT-Thread)在深圳塘朗联合举办了“嵌入式网络应用开发”为主
    的头像 发表于 12-14 16:25 523次阅读
    【PSoC™62 for <b class='flag-5'>RT-Thread</b>】<b class='flag-5'>RT-Thread</b>携手英飞凌举办嵌入式网络应用<b class='flag-5'>开发</b>沙龙,圆满落幕!

    【先楫HPM5361EVK开发板试用体验】移植 RT-Thread系统

    1 新建HPM5300EVK工程 首先安装HPM5300EVK的BSP。 然后选择“基于开发板”创建工程。 新建工程后如下图所示。 2 编译下载调试 创建了工程后,直接使用RT-Thread
    发表于 12-10 14:16

    RA6M3 RT-Thread* LVGL HMI Board开发实践指南-GPIO实践

    RT-Thread即将发布系列RA6M3外设驱动的实践指南,我们将使用瑞萨RA6M3 HMI-Board 开发板,带领大家上手RT-Thread设备驱动, 本篇文章将介绍GPIO外设
    的头像 发表于 11-30 19:05 1161次阅读
    RA6M3 <b class='flag-5'>RT-Thread</b>* LVGL HMI Board<b class='flag-5'>开发</b>实践指南-GPIO实践