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-Threadwilliam hill官网 用户「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

    文章

    1286

    浏览量

    40109

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

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

收藏 人收藏

    评论

    相关推荐

    RT-Thread上CAN实践

    开箱测试RT-Thread官方已完成了对英飞凌XMC7200EVK的移植,通过shell可以看到做好了uart3的console。本文将介绍如何进行RT-ThreadCan移植。接下来我们要完成CAN_FD的驱动移植,并正常启动RT-T
    的头像 发表于 11-13 01:03 1172次阅读
    <b class='flag-5'>RT-Thread</b>上CAN实践

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

    数转换器(ADC)是现代嵌入式系统中不可或缺的组件,它能将连续的模拟信号转换为离散的数字信号。本文将深入探讨如何在NXP的FRDM-MCXA153开发板上实现和使用RT-Thread的ADC驱动,为开发者提供
    的头像 发表于 11-01 12:29 329次阅读
    基于恩智浦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 388次阅读
    开源共生 商业共赢 | <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 405次阅读
    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 923次阅读
    【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 1208次阅读
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 线下培训火热来袭!

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

    强烈,他们迫切地希望有本可以指导他们在RT-Thread开发驱动的指南。为了解决开发者的燃眉之急,《RT-Thread设备驱动
    的头像 发表于 08-01 08:35 626次阅读
    【好书推荐】<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 2825次阅读
    <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 578次阅读
    先楫半导体所有<b class='flag-5'>开发板</b>已上<b class='flag-5'>RT-Thread</b>主线啦

    RT-Thread西安社区举办首次例会,诚邀每开发者参与!

    为了更好的服务和链接全国各地的RT-Thread嵌入式开发者,RT-Thread今年将全域推行不同区域社区网,通过建立区域社区网,我们期待构建更加紧密联系的开源社区,实现更广泛的开源资源共享,让更多
    的头像 发表于 05-17 15:07 330次阅读
    <b class='flag-5'>RT-Thread</b>西安社区举办首次例会,诚邀每<b class='flag-5'>一</b>位<b class='flag-5'>开发</b>者参与!

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

    本文主要介绍如何在PSoC62 Evaluation kit开发板上运行RT-Thread,如何连接CYW43012 WiFi蓝牙模组,以及如何进行WiFi联网、网络延迟、网络带宽测试。
    的头像 发表于 02-27 10:49 1016次阅读
    如何在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
    的头像 发表于 02-24 08:16 1643次阅读
    《<b class='flag-5'>RT-Thread</b>设备驱动<b class='flag-5'>开发</b>指南》基础篇--以先楫bsp的hwtimer设备为例

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

    RT-Thread设备驱动开发指南》书籍是RT-thread官方出品撰写,系统讲解RT-thread IO设备驱动开发方法,从三方面进行讲解
    的头像 发表于 02-20 16:01 1703次阅读
    <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 BSP v1.4.0 正式发布

    亲爱的小伙伴们:我们很高兴地通知您,先楫RT-ThreadBSPv1.4.0正式发布了!!1个小转变:从这个版本开始,我们将更侧重于利用RT-Thread丰富的组件以及特色的在线包,基于开发板提供
    的头像 发表于 02-19 12:20 623次阅读
    先楫 <b class='flag-5'>RT-Thread</b> BSP v1.4.0 正式发布