在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

基于 RT-Thread 的 RoboMaster 電控框架(一)

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來(lái)源:未知 ? 2023-09-19 19:55 ? 次閱讀
由于 RT-Thread 穩(wěn)定高效的內(nèi)核,豐富的文檔教程,積極活躍的社區(qū)氛圍,以及設(shè)備驅(qū)動(dòng)框架、Kconfig、Scons、日志系統(tǒng)、海量的軟件包……很難不選擇 RT-Thread 進(jìn)行項(xiàng)目開發(fā)。但也正是因?yàn)檫@些優(yōu)點(diǎn)的覆蓋面較廣,很多初學(xué)者會(huì)覺得無(wú)從下手,但只要步入 RT-Thread 的大門,你就發(fā)現(xiàn)她的美好。這系列文檔將作為本人基于 RT-Thread 開發(fā) RoboMaster 電控框架的記錄與分享,希望能幫助到更多初識(shí) RT-Thread 的小伙伴,也歡迎大家交流分享,指正不足,共同進(jìn)步。

背景

Robomaster 機(jī)器人比賽包含多個(gè)兵種,為了提高研發(fā)效率,模塊化尤為重要,使用 RT-Thread 有助于面對(duì)對(duì)象思想開發(fā);通過(guò)配備的 Kconfig,Scons 等工具可以實(shí)現(xiàn)工程的靈活配置;軟件定時(shí)器可用作各電機(jī)等模塊監(jiān)控,RingBuffer 可以實(shí)現(xiàn)傳感器信息的高效處理 …….使用的開發(fā)板為大疆的 RoboMaster-C 型開發(fā)板,基礎(chǔ)工程為 rt-thread>bsp>stm32f407-robomaster-c

電機(jī)模塊開發(fā)

使用電機(jī)和電調(diào)均為大疆官方出品,如 2006,3508,6020 等,采用 CAN 通訊方式。

構(gòu)建對(duì)象

首先我們根據(jù)使用的電機(jī)特性,構(gòu)建一個(gè)通用的電機(jī)對(duì)象

 1/**
 2*@briefDJIintelligentmotortypedef
 3*/
 4typedefstructdji_motor_object
 5{
 6rt_device_tcan_dev;//電機(jī)CAN實(shí)例
 7dji_motor_measure_tmeasure;//電機(jī)測(cè)量值
 8uint32_ttx_id;//發(fā)送id(主發(fā))
 9uint32_trx_id;//接收id(主收)
10/*分組發(fā)送設(shè)置*/
11uint8_tsend_group;//同一幀報(bào)文分組
12uint8_tmessage_num;//一幀報(bào)文中位置
13motor_type_emotor_type;//電機(jī)類型
14motor_working_type_estop_flag;//啟停標(biāo)志
15/*監(jiān)控線程相關(guān)*/
16rt_timer_ttimer;//電機(jī)監(jiān)控定時(shí)器
17/*電機(jī)控制相關(guān)*/
18void*controller;//電機(jī)控制器
19int16_t(*control)(dji_motor_measure_tmeasure);//控制電機(jī)的接口用戶可以自定義,返回值為16位的電壓或電流
20}dji_motor_object_t;

因?yàn)檫@些電機(jī)我們均使用 CAN 方式進(jìn)行驅(qū)動(dòng),是 CAN 設(shè)備的延申,于是將 rt_device_t can_dev 父類結(jié)構(gòu)體對(duì)象內(nèi)嵌。

dji_motor_measure_t 結(jié)構(gòu)體中為,電機(jī)控制時(shí)需要用到的一些反饋值,包括電調(diào)直接反饋的數(shù)據(jù)以及進(jìn)一步解算的得出的:

 1/**
 2*@briefDJImotorfeedback
 3*/
 4typedefstruct
 5{
 6/*以下是處理得出的數(shù)據(jù)*/
 7floatangle_single_round;//單圈角度
 8floatspeed_aps;//角速度,單位為:度/秒
 9floattotal_angle;//總角度,注意方向
10int32_ttotal_round;//總?cè)?shù),注意方向
11floattarget;//目標(biāo)值(輸出軸扭矩矩/速度/角度(單位度))
12/*以下是電調(diào)直接回傳的數(shù)據(jù)*/
13uint16_tecd;//0-8191
14uint16_tlast_ecd;//上一次讀取的編碼器
15int16_tspeed_rpm;//電機(jī)的轉(zhuǎn)速值
16int16_treal_current;//實(shí)際轉(zhuǎn)矩電流
17uint8_ttemperature;//Celsius
18}dji_motor_measure_t;

注冊(cè)實(shí)例

通過(guò) dji_motor_object_t *dji_motor_register(motor_config_t *config, void *controller) 注冊(cè)對(duì)應(yīng)的電機(jī)實(shí)例,用戶通過(guò) motor_config_t *config 對(duì)實(shí)例進(jìn)行靈活配置:

 1/**
 2*@brief電機(jī)初始化,返回一個(gè)電機(jī)實(shí)例
 3*@paramconfig電機(jī)配置
 4*@returndji_motor_object_t*電機(jī)實(shí)例指針
 5*/
 6dji_motor_object_t*dji_motor_register(motor_config_t*config,void*controller)
 7{
 8dji_motor_object_t*object=(dji_motor_object_t*)rt_malloc(sizeof(dji_motor_object_t));
 9rt_memset(object,0,sizeof(dji_motor_object_t));
10//對(duì)接用戶配置的motor_config
11object->motor_type=config->motor_type;//6020or2006or3508
12object->rx_id=config->rx_id;//電機(jī)接收?qǐng)?bào)文的ID
13object->control=controller;//電機(jī)控制器
14/*查找CAN設(shè)備*/
15object->can_dev=rt_device_find(config->can_name);
16//電機(jī)分組,因?yàn)橹炼?個(gè)電機(jī)可以共用一幀CAN控制報(bào)文
17motor_send_grouping(object,config);
18//電機(jī)離線檢測(cè)定時(shí)器相關(guān)
19object->timer=rt_timer_create("motor1",
20motor_lost_callback,
21object,20,
22RT_TIMER_FLAG_PERIODIC);
23rt_timer_start(object->timer);
24dji_motor_enable(object);
25dji_motor_obj[idx++]=object;
26returnobject;
27}
28/*電機(jī)配置結(jié)構(gòu)體*/
29typedefstruct
30{
31motor_type_emotor_type;
32constchar*can_name;
33uint32_ttx_id;//發(fā)送id(主發(fā))
34uint32_trx_id;//接收id(主收)
35void*controller;//電機(jī)控制器
36}motor_config_t;
motor_config_t 結(jié)構(gòu)體中的 void *controller 為電機(jī)所使用到的控制器集合,是一個(gè)控制器類型為其成員的結(jié)構(gòu)體變量,如下:
1staticstructchassis_controller_t{
2pid_object_t*speed_pid;
3}chassis_controller;
4staticstructgimbal_controller_t{
5pid_object_t*speed_pid;
6pid_object_t*angle_pid;
7}gimbal_controlelr;

調(diào)用 dji_motor_object_t *dji_motor_register 時(shí)傳入的 void *controller 為電機(jī)對(duì)應(yīng)的控制器具體實(shí)現(xiàn),如進(jìn)行 pid 計(jì)算,濾波等,會(huì)賦值給電機(jī)對(duì)象對(duì)應(yīng)的函數(shù)指針,在進(jìn)行電機(jī)控制計(jì)算時(shí)被執(zhí)行,如下:

1rt_int16_tchassis_control(dji_motor_measure_tmeasure){
2staticrt_int16_tset=0;
3set=pid_calculate(chassis_controller.speed_pid,measure.speed_rpm,1000);
4returnset;
5}

數(shù)據(jù)處理

電機(jī)對(duì)象離不開對(duì)數(shù)據(jù)穩(wěn)定快速的收發(fā)和解析計(jì)算,接下來(lái)展開討論使用 RT-Thread 的 CAN 設(shè)備驅(qū)動(dòng)收發(fā)數(shù)據(jù)的思路。

首先是數(shù)據(jù)的接收,stm32f4 擁有 2 個(gè) CAN 外設(shè),所有電機(jī)和使用 CAN 總線的設(shè)備都掛載在這兩條總線上,但 RT-Thread 的每個(gè) CAN 總線只能通過(guò) rt_device_set_rx_indicate(can_dev, can_rx_call); 注冊(cè)一個(gè)對(duì)應(yīng)的接收回調(diào)函數(shù)。但不同類型電機(jī),不同 CAN 設(shè)備的數(shù)據(jù)解析處理都是不一樣的,我這里的解決思路是:首先創(chuàng)建了一個(gè) usr_callback 文件,用于統(tǒng)一管理 CAN、串口等設(shè)備可能用到的用戶接收對(duì)調(diào)函數(shù);將一個(gè)大的設(shè)備類型回調(diào)函數(shù)注冊(cè)到對(duì)應(yīng) CAN 設(shè)備,其中再細(xì)分各掛載設(shè)備的數(shù)據(jù)解析,實(shí)現(xiàn)如下:

 1#ifdefBSP_USING_CAN
 2rt_err_tcan_rx_call(rt_device_tdev,rt_size_tsize)
 3{
 4structrt_can_msgrxmsg={0};
 5uint8_t*rxbuff=rxmsg.data;
 6/*從CAN讀取一幀數(shù)據(jù)*/
 7rt_device_read(dev,0,&rxmsg,sizeof(rxmsg));
 8/*CAN接收到數(shù)據(jù)后產(chǎn)生中斷,調(diào)用此回調(diào)函數(shù),然后發(fā)送接收信號(hào)量*/
 9#ifdefBSP_USING_DJI_MOTOR
10dji_motot_rx_callback(rxmsg.id,rxbuff);
11#endif/*BSP_USING_DJI_MOTOR*/
12returnRT_EOK;
13}
14#endif/*BSP_USING_CAN*/
但是這其中也有一點(diǎn)問(wèn)題,rt_err_t can_rx_call(rt_device_t dev, rt_size_t size) 傳入的參數(shù)無(wú)法判斷具體的 CAN 設(shè)備來(lái)源,因此所有使用到的 CAN 外設(shè)數(shù)據(jù)處理函數(shù)都會(huì)被調(diào)用,但目前問(wèn)題不大,因?yàn)橥粭l總線上不會(huì)掛載相同 ID 的設(shè)備,這也是一開始就應(yīng)該避免的錯(cuò)誤。接下來(lái)是 CAN 報(bào)文的發(fā)送,調(diào)用 rt_device_write 發(fā)送填充好的 CAN 報(bào)文幀即可。離線檢測(cè)這里使用 RT-Thread 的軟件定時(shí)器對(duì)電機(jī)進(jìn)行離線檢測(cè),當(dāng)超過(guò)定時(shí)間沒有接收到對(duì)應(yīng)電機(jī)反饋報(bào)文,則進(jìn)入超時(shí)回調(diào),并輸出警告日志:
 1/**
 2*@brief電機(jī)定時(shí)器超時(shí)回調(diào)函數(shù)
 3*@parammotor_ptr
 4*/
 5staticvoidmotor_lost_callback(void*motor_ptr)
 6{
 7dji_motor_object_t*motor=(dji_motor_object_t*)motor_ptr;
 8//dji_motor_stop(motor);
 9LOG_W("[dji_motor]Motorlost,canbus[%s],id0x[%x]",motor->can_dev->parent.name,motor->rx_id);
10}

使用實(shí)例

封裝完成的電機(jī)模塊使用示例如下:

 1staticstructchassis_controller_t{
 2pid_object_t*speed_pid;
 3}chassis_controller;
 4staticstructgimbal_controller_t{
 5pid_object_t*speed_pid;
 6pid_object_t*angle_pid;
 7}gimbal_controlelr;
 8staticdji_motor_object_t*chassis_motor;
 9staticdji_motor_object_t*gimbal_motor;
10rt_int16_tchassis_control(dji_motor_measure_tmeasure){
11staticrt_int16_tset=0;
12set=pid_calculate(chassis_controller.speed_pid,measure.speed_rpm,1000);
13returnset;
14}
15rt_int16_tgimbal_control(dji_motor_measure_tmeasure){
16staticrt_int16_tset=0;
17set=pid_calculate(gimbal_controlelr.speed_pid,measure.speed_rpm,0);
18returnset;
19}
20staticvoidexample_init()
21{
22pid_config_tchassis_speed_config={
23.Kp=10,//4.5
24.Ki=0,//0
25.Kd=0,//0
26.IntegralLimit=3000,
27.Improve=PID_Trapezoid_Intergral|PID_Integral_Limit|PID_Derivative_On_Measurement,
28.MaxOut=12000,
29};
30pid_config_tgimbal_speed_config={
31.Kp=50,//50
32.Ki=200,//200
33.Kd=0,
34.Improve=PID_Trapezoid_Intergral|PID_Integral_Limit|PID_Derivative_On_Measurement,
35.IntegralLimit=3000,
36.MaxOut=20000,
37};
38chassis_controller.speed_pid=pid_register(&chassis_speed_config);
39gimbal_controlelr.speed_pid=pid_register(&gimbal_speed_config);
40motor_config_tchassis_motor_config={
41.motor_type=M3508,
42.can_name=CAN_CHASSIS,
43.rx_id=0x201,
44.controller=&chassis_controller,
45};
46motor_config_tgimbal_motor_config={
47.motor_type=GM6020,
48.can_name=CAN_GIMBAL,
49.rx_id=0x206,
50.controller=&gimbal_controlelr,
51};
52chassis_motor=dji_motor_register(&chassis_motor_config,chassis_control);
53gimbal_motor=dji_motor_register(&gimbal_motor_config,gimbal_control);
54}

到此就可以方便且靈活的配置和使用電機(jī)模塊啦

倉(cāng)庫(kù)地址放這里了 HNU_RM_SHARK_C ,覺得不錯(cuò)可以點(diǎn)個(gè) Star !

存在問(wèn)題及優(yōu)化方向

  1. 目前 rt-thread 下 stm32 can驅(qū)動(dòng)似乎僅支持 FIFO0 ,但 stm32f4 系列 can 具備兩個(gè) FIFO,如能同時(shí)使能所有 FIFO,應(yīng)該能有效提高性能和穩(wěn)定性。

  2. 電機(jī)的離線回調(diào)可以增加相應(yīng)的聲光報(bào)警。

  3. 后續(xù)考慮能不能也優(yōu)化為,read,write,control 等形式。

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

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

原文鏈接:https://club.rt-thread.org/ask/article/0a655bcf83494c87.html

———————End——————

點(diǎn)擊閱讀原文進(jìn)入官網(wǎng)


原文標(biāo)題:基于 RT-Thread 的 RoboMaster 電控框架(一)

文章出處:【微信公眾號(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

    文章

    1350

    瀏覽量

    41386

原文標(biāo)題:基于 RT-Thread 的 RoboMaster 電控框架(一)

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

    RT-Thread默認(rèn)支持的IDE只有IAR 和 Keil, 那如何將RT-Thread移植到NXP MCUXPressoIDE上呢?本文內(nèi)容比較簡(jiǎn)單但稍有瑣碎,希望對(duì)有需要的小伙伴有所幫助。
    的頭像 發(fā)表于 02-13 10:37 ?1594次閱讀
    如何將<b class='flag-5'>RT-Thread</b>移植到NXP MCUXPressoIDE上

    RT-Thread上CAN實(shí)踐

    開箱測(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 ?1783次閱讀
    <b class='flag-5'>RT-Thread</b>上CAN實(shí)踐

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

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

    【成都】9月21日RT-Thread巡回線下培訓(xùn)-OpenMV機(jī)器視覺

    親愛的RT-Thread社區(qū)成員們:RT-Thread24年全球巡回培訓(xùn)將覆蓋超10座城市及國(guó)家,為開發(fā)者提供個(gè)深入學(xué)習(xí)RT-Thread嵌入式開發(fā),以及和工程師們線下交流的絕佳機(jī)會(huì)
    的頭像 發(fā)表于 09-13 08:09 ?1331次閱讀
    【成都】9月21日<b class='flag-5'>RT-Thread</b>巡回線下培訓(xùn)-OpenMV機(jī)器視覺

    【大連】9月7日RT-Thread巡回線下培訓(xùn)-OpenMV機(jī)器視覺

    親愛的RT-Thread社區(qū)成員們:2024年RT-Thread全球開發(fā)者線下培訓(xùn)拉開帷幕啦!24年全球巡回培訓(xùn)將覆蓋超10座城市及國(guó)家,為開發(fā)者提供個(gè)深入學(xué)習(xí)RT-Thread嵌入
    的頭像 發(fā)表于 09-01 08:02 ?2811次閱讀
    【大連】9月7日<b class='flag-5'>RT-Thread</b>巡回線下培訓(xùn)-OpenMV機(jī)器視覺

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

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

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

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

    RT-Thread 新里程碑達(dá)成——GitHub Star 破萬(wàn)!

    RT-Thread實(shí)時(shí)操作系統(tǒng)開源項(xiàng)目在GitHub上的star數(shù)量突破一萬(wàn)!截止發(fā)文,RT-Thread作為實(shí)時(shí)操作系統(tǒng)在業(yè)界Star數(shù)量排名第!倉(cāng)庫(kù)地址:https://github.com
    的頭像 發(fā)表于 07-04 08:35 ?653次閱讀
    <b class='flag-5'>RT-Thread</b> 新里程碑達(dá)成——GitHub Star 破萬(wàn)!

    基于 RT-Thread專業(yè)版的EtherCAT主站方案

    )方案介紹本方案基于RT-Thread專業(yè)版,在RT-Thread端集成EtherCAT主站協(xié)議,通過(guò)EtherCAT對(duì)伺服電機(jī)或遠(yuǎn)程IO進(jìn)行實(shí)時(shí)控制,具備傳輸速度快,實(shí)時(shí)性高,擴(kuò)展設(shè)備靈活等
    的頭像 發(fā)表于 06-19 08:35 ?1551次閱讀
    基于 <b class='flag-5'>RT-Thread</b>專業(yè)版的EtherCAT主站方案

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

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

    6月6日杭州站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    6月6日下午我們將在杭州舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請(qǐng)到RT-Thread資深
    的頭像 發(fā)表于 05-28 08:35 ?590次閱讀
    6月6日杭州站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

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

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

    2024 RT-Thread 全球技術(shù)大會(huì)演講議程發(fā)布!

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技術(shù)大會(huì))致力于圍繞RT-Thread基礎(chǔ)軟件技術(shù)發(fā)展、實(shí)踐創(chuàng)新、開發(fā)者能力
    的頭像 發(fā)表于 05-16 08:34 ?793次閱讀
    2024 <b class='flag-5'>RT-Thread</b> 全球技術(shù)大會(huì)演講議程發(fā)布!

    【上海】5月25日-基于恩智浦MCX N系列MCU結(jié)合RT-Thread的應(yīng)用與實(shí)踐 線下培訓(xùn)

    5月25號(hào),RT-Thread將攜手恩智浦共同舉辦基于恩智浦MCXN系列MCU結(jié)合RT-Thread的應(yīng)用與實(shí)踐線下培訓(xùn)。我們將為大家?guī)?lái)恩智浦MCXN系列MCU的詳細(xì)介紹、精彩Demo展示、以及
    的頭像 發(fā)表于 05-13 18:19 ?1591次閱讀
    【上海】5月25日-基于恩智浦MCX N系列MCU結(jié)合<b class='flag-5'>RT-Thread</b>的應(yīng)用與實(shí)踐 線下培訓(xùn)

    新書發(fā)布——《實(shí)時(shí)操作系統(tǒng)應(yīng)用技術(shù):RT-Thread與ARM編程實(shí)踐》

    RT-Thread本新書《實(shí)時(shí)操作系統(tǒng)應(yīng)用技術(shù)——基于RT-Thread與ARM的編程實(shí)踐》發(fā)布,標(biāo)志著RT-Thread生態(tài)和實(shí)時(shí)操作系統(tǒng)技術(shù)教育領(lǐng)域又迎來(lái)了
    的頭像 發(fā)表于 05-11 08:35 ?1101次閱讀
    新書發(fā)布——《實(shí)時(shí)操作系統(tǒng)應(yīng)用技術(shù):<b class='flag-5'>RT-Thread</b>與ARM編程實(shí)踐》
    主站蜘蛛池模板: 国产h视频在线观看高清 | 亚洲人成网站色在线观看 | 久久国产免费观看精品 | 天天操天天操天天操天天操 | 色多多免费在线观看 | 亚洲高清资源 | 国模吧一区二区三区精品视频 | 成人理论片 | 亚洲国产精品网站久久 | 毛片美女 | 四虎精品永久在线 | 日韩一级片免费在线观看 | 色老头视频在线观看 | 免费的三级网站 | 国产午夜精品久久久久九九 | 亚洲一区中文字幕在线 | 欧美日韩亚洲色图 | 99精品热视频| 国产婷婷高清在线观看免费 | 国产一级毛片午夜 | 在线免费观看视频 | 丁香婷婷在线观看 | 人人插视频 | 天天做天天爱夜夜爽女人爽宅 | 午夜国产| 超h 高h 污肉1v1御书屋 | 色老太视频 | 国产色婷婷精品免费视频 | 免费国产成人α片 | 爱爱欧美 | 国产三级久久久精品三级 | 亚洲一区二区三区精品视频 | 亚洲欧美性另类春色 | 欧美日韩精品一区二区在线线 | 人与禽交免费网站视频 | 看片午夜 | 国产大片91精品免费观看不卡 | 国产成人精品三级 | 亚洲成a人v在线观看 | 老色鬼久久综合第一 | 日本xxxxx69hd日本 |