0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于RoboMasterC型開(kāi)發(fā)板的RT-Thread使用分享(一)

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來(lái)源:未知 ? 2023-01-05 12:10 ? 次閱讀

假期期間打算開(kāi)一個(gè)坑,和大家分享下基于RoboMaster開(kāi)發(fā)板C型上RT-Thread使用,本系列文章計(jì)劃是給剛接觸STM32和RT-Thread的同學(xué)看的,講的會(huì)稍微基礎(chǔ)一點(diǎn)。

硬件與開(kāi)發(fā)環(huán)境介紹


開(kāi)發(fā)板:

本次選用的開(kāi)發(fā)板是大疆創(chuàng)新的RoboMaster開(kāi)發(fā)板C型,其上面采用高性能的STM32F407IG芯片。開(kāi)發(fā)板C型具有如下外設(shè):

用戶自定義LED、5V接口、BOOT配置接口、micro USB接口、SWD接口、按鍵、可配置I/O接口、UART接口、CAN總線接口、PWM接口、DBUS接口、數(shù)字?jǐn)z像頭FPC接口、蜂鳴器、電壓檢測(cè)ADC、六軸慣性測(cè)量單元和磁力計(jì)。

這個(gè)也是我可以找到體積最小的板載陀螺儀的開(kāi)發(fā)板,常用的接口也都有,很適合用在控制上。

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

軟件環(huán)境:

IDE:RT-Thread Studio

RT-Thread:V4.1.0

STM32CubeMx:V6.7.0

STM32CubeProgrammer:V2.11.0

STM32CubeMonitor:V1.4.0

我平時(shí)開(kāi)發(fā)常用的IDE實(shí)際上是Jetbrains家的Clion但是為了教程的通用性就選擇了免費(fèi)的RT-Thread Studio。

教程第一步:點(diǎn)燈

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

本次我們選擇UART1作為我們的控制臺(tái)串口,根據(jù)原理圖我們得知發(fā)送腳為PA9,接收腳為PB7。

因此我們創(chuàng)建項(xiàng)目的選擇如下

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

之后我們需要在CubeMX Setting中進(jìn)行時(shí)鐘樹(shù)和引腳的配置。

在 System Core 下選擇 RCC 選項(xiàng),在 RCC mode and Configuration 中的 High Speed

Clock(HSE)下選擇 Crystal/Ceramic Resonator

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

之后進(jìn)行時(shí)鐘樹(shù)的配置,我們需要修改紅框內(nèi)的數(shù)據(jù)如下圖

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

配置的根據(jù)如下:

Input frequency這個(gè)是根據(jù)板載的外部高速晶振來(lái)設(shè)置的,具體板子具體設(shè)置。

PLL的信號(hào)來(lái)源我們這里選擇HSE(外部高速時(shí)鐘),不選擇HSI(內(nèi)部高速時(shí)鐘)是由于HSI時(shí)鐘信號(hào)是由RC振蕩電路產(chǎn)生的精度相對(duì)較差,而HSE時(shí)鐘信號(hào)是由石英晶體產(chǎn)生精度相對(duì)而言更高,所以選擇HSE。

后面灰色框內(nèi)的M、N、P是PLL(鎖相環(huán))的分頻倍頻參數(shù),將我們輸入的HSE或者HSI時(shí)鐘信號(hào)進(jìn)行分頻、倍頻得到更高的時(shí)鐘頻率。這里我們配置的原因是因?yàn)槲覀兿M鸖YSCLK(系統(tǒng)時(shí)鐘)的頻率達(dá)到STM32F407可到最高的168MHz。

系統(tǒng)時(shí)鐘可以由三種時(shí)鐘源來(lái)驅(qū)動(dòng)

  • HSI振蕩器時(shí)鐘

  • HSE振蕩器時(shí)鐘

  • Main PLL時(shí)鐘

而HSI和HSE在此處都不能到達(dá)168MHz因此我們這里我們這里選擇通過(guò)PLL倍頻后驅(qū)動(dòng)SYSCLK。

因此PLL的三個(gè)參數(shù)也是通過(guò)湊出倍頻后得到168MHz計(jì)算得到的。

最后我們修改的兩處為配置AHB頻率的預(yù)分頻器,這里我們需要根據(jù)STM32F4xx中文參考手冊(cè)來(lái)配置。根據(jù)下圖我們可知APB1的最大頻率為42MHz,APB2的最大頻率為84MHz,因此我們的分頻值分別設(shè)置為4和2來(lái)匹配最大頻率。

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

后面我們點(diǎn)擊頂部的 Pinout & Configuartion,選擇 SYS,在 Debug 下拉框中選擇 Serial Wire。

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

隨后配置命令行串口所需的UART1引腳,配置哪一個(gè)引腳需要根據(jù)開(kāi)發(fā)板原理圖來(lái)設(shè)置,用于STM32許多引腳都有復(fù)用功能的,所以哪個(gè)引腳有什么功能是需要根據(jù)硬件來(lái)看的。原來(lái)創(chuàng)建工程的時(shí)候我們就看了原理圖發(fā)送腳為PA9,接收腳為PB7,所以這里我們就直接設(shè)置。

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

由于我們這里要進(jìn)行點(diǎn)燈所以我們來(lái)設(shè)置一下GPIO。根據(jù)原理圖我們知道LED_B、LED_G、LED_R引腳分別為PH10、PH11、PH12,我們?cè)贑ubeMX中進(jìn)行配置。

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

把這三個(gè)引腳設(shè)置為GPIO_Output。

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

隨后點(diǎn)擊GENERATE CODE生成代碼

根據(jù)原理圖我們可以發(fā)現(xiàn)三個(gè)引腳不處于高電平的輸出狀態(tài),那么三極管的控制端將會(huì)被下拉電阻拉為低電平,當(dāng) LED_B、LED_G 和 LED_R 處于高電平的輸出狀態(tài),通過(guò)原理圖中 1kΩ與 10kΩ的分壓后,三極管的基極控制端將變成高電平,故而三級(jí)管的控制端電壓將變成高電平。因此引腳為高電平時(shí),LED燈亮。

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

在main函數(shù)中編寫如下代碼進(jìn)行點(diǎn)燈。

 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/*設(shè)置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}

最終效果為紅、綠、藍(lán)三個(gè)燈依次亮滅。

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

本次分享就到此為止,感謝大家的觀看,我也會(huì)盡力更新這個(gè)系列的!

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

版權(quán)聲明:

本文為RT-Thread論壇用戶「goldengrandpa」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

原文鏈接:

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


你可以添加微信:rtthread2020 為好友,注明:公司+姓名,拉進(jìn)RT-Thread官方微信交流群!

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

點(diǎn)擊閱讀原文回看開(kāi)發(fā)者大會(huì)


原文標(biāo)題:基于RoboMasterC型開(kāi)發(fā)板的RT-Thread使用分享(一)

文章出處:【微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1302

    瀏覽量

    40268

原文標(biāo)題:基于RoboMasterC型開(kāi)發(fā)板的RT-Thread使用分享(一)

文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RT-Thread上CAN實(shí)踐

    開(kāi)箱測(cè)試RT-Thread官方已完成了對(duì)英飛凌XMC7200EVK的移植,通過(guò)shell可以看到做好了uart3的console。本文將介紹如何進(jìn)行RT-ThreadCan移植。接下來(lái)我們要完成CAN_FD的驅(qū)動(dòng)移植,并正常啟動(dòng)RT-T
    的頭像 發(fā)表于 11-13 01:03 ?1302次閱讀
    <b class='flag-5'>RT-Thread</b>上CAN實(shí)踐

    基于恩智浦FRDM-MCXA153開(kāi)發(fā)板實(shí)現(xiàn)RT-Thread的ADC驅(qū)動(dòng)

    數(shù)轉(zhuǎn)換器(ADC)是現(xiàn)代嵌入式系統(tǒng)中不可或缺的組件,它能將連續(xù)的模擬信號(hào)轉(zhuǎn)換為離散的數(shù)字信號(hào)。本文將深入探討如何在NXP的FRDM-MCXA153開(kāi)發(fā)板上實(shí)現(xiàn)和使用RT-Thread的ADC驅(qū)動(dòng),為開(kāi)發(fā)者提供
    的頭像 發(fā)表于 11-01 12:29 ?382次閱讀
    基于恩智浦FRDM-MCXA153<b class='flag-5'>開(kāi)發(fā)板</b>實(shí)現(xiàn)<b class='flag-5'>RT-Thread</b>的ADC驅(qū)動(dòng)

    開(kāi)源共生 商業(yè)共贏 | RT-Thread 2024開(kāi)發(fā)者大會(huì)報(bào)名啟動(dòng)!

    親愛(ài)的RT-Thread開(kāi)發(fā)者我們很高興地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread
    的頭像 發(fā)表于 10-29 08:06 ?458次閱讀
    開(kāi)源共生 商業(yè)共贏 | <b class='flag-5'>RT-Thread</b> 2024<b class='flag-5'>開(kāi)發(fā)</b>者大會(huì)報(bào)名啟動(dòng)!

    NXP FRDM-MCXC444開(kāi)發(fā)板RT-Thread環(huán)境下的上手過(guò)程

    NXP FRDM-MCXC444開(kāi)發(fā)板款基于MCX C444 MCU的高性能開(kāi)發(fā)板,它集成了豐富的硬件資源和接口,支持快速原型設(shè)計(jì)。本文將為讀者提供份詳細(xì)的
    的頭像 發(fā)表于 10-12 11:51 ?441次閱讀
    NXP FRDM-MCXC444<b class='flag-5'>開(kāi)發(fā)板</b>在<b class='flag-5'>RT-Thread</b>環(huán)境下的上手過(guò)程

    【QEMU系列】不用開(kāi)發(fā)板運(yùn)行RT-Thread指南-ARM架構(gòu)

    成為個(gè)門檻。本文將詳細(xì)介紹如何在QEMU虛擬機(jī)的Vexpress-A9平臺(tái)上運(yùn)行RT-Thread,幫助開(kāi)發(fā)者在沒(méi)有實(shí)際硬件開(kāi)發(fā)板的情況下,輕松體驗(yàn)和學(xué)習(xí)
    的頭像 發(fā)表于 08-09 08:35 ?998次閱讀
    【QEMU系列】不用<b class='flag-5'>開(kāi)發(fā)板</b>運(yùn)行<b class='flag-5'>RT-Thread</b>指南-ARM架構(gòu)

    2024 RT-Thread全球巡回 線下培訓(xùn)火熱來(lái)襲!

    親愛(ài)的RT-Thread社區(qū)成員們:我們非常高興地宣布,2024年RT-Thread全球開(kāi)發(fā)者線下培訓(xùn)即將拉開(kāi)帷幕!24年全球巡回培訓(xùn)將覆蓋超10座城市及國(guó)家,為開(kāi)發(fā)者提供
    的頭像 發(fā)表于 08-07 08:35 ?1388次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓(xùn)火熱來(lái)襲!

    【好書推薦】RT-Thread設(shè)備驅(qū)動(dòng)開(kāi)發(fā)指南

    強(qiáng)烈,他們迫切地希望有本可以指導(dǎo)他們?cè)?b class='flag-5'>RT-Thread開(kāi)發(fā)驅(qū)動(dòng)的指南。為了解決開(kāi)發(fā)者的燃眉之急,《RT-Thread設(shè)備驅(qū)動(dòng)
    的頭像 發(fā)表于 08-01 08:35 ?683次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動(dòng)<b class='flag-5'>開(kāi)發(fā)</b>指南

    開(kāi)發(fā)者分享 | 基于先楫RT-Thread BSP,使用CLion開(kāi)發(fā)應(yīng)用

    本期開(kāi)發(fā)者:朱彥祖RT-Thread資深工程師,HPM6700/6400元老級(jí)開(kāi)發(fā)者及骨灰級(jí)用戶,先輯生態(tài)社區(qū)常駐優(yōu)秀開(kāi)發(fā)者,江湖人稱杭州吳彥祖。背景最近在使用先輯HPM6750
    的頭像 發(fā)表于 06-07 08:17 ?2951次閱讀
    <b class='flag-5'>開(kāi)發(fā)</b>者分享 | 基于先楫<b class='flag-5'>RT-Thread</b> BSP,使用CLion<b class='flag-5'>開(kāi)發(fā)</b>應(yīng)用

    先楫半導(dǎo)體所有開(kāi)發(fā)板已上RT-Thread主線啦

    目前,先楫半導(dǎo)體在RT-Thread主線支持的開(kāi)發(fā)板包含以下這些
    的頭像 發(fā)表于 06-05 08:17 ?601次閱讀
    先楫半導(dǎo)體所有<b class='flag-5'>開(kāi)發(fā)板</b>已上<b class='flag-5'>RT-Thread</b>主線啦

    RT-Thread西安社區(qū)舉辦首次例會(huì),誠(chéng)邀每開(kāi)發(fā)者參與!

    為了更好的服務(wù)和鏈接全國(guó)各地的RT-Thread嵌入式開(kāi)發(fā)者,RT-Thread今年將全域推行不同區(qū)域社區(qū)網(wǎng),通過(guò)建立區(qū)域社區(qū)網(wǎng),我們期待構(gòu)建更加緊密聯(lián)系的開(kāi)源社區(qū),實(shí)現(xiàn)更廣泛的開(kāi)源資源共享,讓更多
    的頭像 發(fā)表于 05-17 15:07 ?350次閱讀
    <b class='flag-5'>RT-Thread</b>西安社區(qū)舉辦首次例會(huì),誠(chéng)邀每<b class='flag-5'>一</b>位<b class='flag-5'>開(kāi)發(fā)</b>者參與!

    如何在PSoC62 Evaluation kit開(kāi)發(fā)板上運(yùn)行RT-Thread呢?

    本文主要介紹如何在PSoC62 Evaluation kit開(kāi)發(fā)板上運(yùn)行RT-Thread,如何連接CYW43012 WiFi藍(lán)牙模組,以及如何進(jìn)行WiFi聯(lián)網(wǎng)、網(wǎng)絡(luò)延遲、網(wǎng)絡(luò)帶寬測(cè)試。
    的頭像 發(fā)表于 02-27 10:49 ?1059次閱讀
    如何在PSoC62 Evaluation kit<b class='flag-5'>開(kāi)發(fā)板</b>上運(yùn)行<b class='flag-5'>RT-Thread</b>呢?

    RT-Thread設(shè)備驅(qū)動(dòng)開(kāi)發(fā)指南》基礎(chǔ)篇--以先楫bsp的hwtimer設(shè)備為例

    、概述(RT-Thread設(shè)備驅(qū)動(dòng)《RT-Thread設(shè)備驅(qū)動(dòng)開(kāi)發(fā)指南》書籍是RT-thread
    的頭像 發(fā)表于 02-24 08:16 ?1758次閱讀
    《<b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動(dòng)<b class='flag-5'>開(kāi)發(fā)</b>指南》基礎(chǔ)篇--以先楫bsp的hwtimer設(shè)備為例

    RT-Thread設(shè)備驅(qū)動(dòng)開(kāi)發(fā)指南基礎(chǔ)篇—以先楫bsp的hwtimer設(shè)備為例

    RT-Thread設(shè)備驅(qū)動(dòng)開(kāi)發(fā)指南》書籍是RT-thread官方出品撰寫,系統(tǒng)講解RT-thread IO設(shè)備驅(qū)動(dòng)開(kāi)發(fā)方法,從三方面進(jìn)行講解
    的頭像 發(fā)表于 02-20 16:01 ?1759次閱讀
    <b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動(dòng)<b class='flag-5'>開(kāi)發(fā)</b>指南基礎(chǔ)篇—以先楫bsp的hwtimer設(shè)備為例

    移植RT-THREAD在stm32開(kāi)發(fā)板上,使用rt_kprintf不能正常打印的原因是什么?怎么解決?

    ) 問(wèn)題: 復(fù)位開(kāi)發(fā)板,RT-Thread 標(biāo)志也沒(méi)有打印出來(lái)。 1、使用print可以打??; 2、使用內(nèi)置的rt_kprintf 不能打??; 測(cè)試代碼: 放在主函數(shù)的while(1)下
    發(fā)表于 02-20 06:24

    先楫 RT-Thread BSP v1.4.0 正式發(fā)布

    親愛(ài)的小伙伴們:我們很高興地通知您,先楫RT-ThreadBSPv1.4.0正式發(fā)布了!!1個(gè)小轉(zhuǎn)變:從這個(gè)版本開(kāi)始,我們將更側(cè)重于利用RT-Thread豐富的組件以及特色的在線包,基于開(kāi)發(fā)板提供
    的頭像 發(fā)表于 02-19 12:20 ?640次閱讀
    先楫 <b class='flag-5'>RT-Thread</b> BSP v1.4.0 正式發(fā)布