掌上单片机实验室 - 编程环境(续)(6)

掌上单片机实验室 – 走出屏幕的 ROS 小海龟(27) 在上一步的基础上,完成了使用 turtle_teleop_key 节点控制虚拟和现实两个小海龟,将基于 micro_ros 软件包实现单片机和 ROS2 主机通讯的流程全部打通,后面就可以进一步尝试ROS2 的功能了。 阅读详情

        最近在帮朋友做个项目时,再次使用 STM32Duino,发现ST公司对STM32Duino做了较大的改进,前文我所抱怨的没有详细技术文档之事如今也增加了,为此,赶紧续文一篇,将此好消息与大家分享。

        第一:ST公司已经将STM32Duino升级到2.1 版本,从2.0版本开始启用新的Arduino开发板管理链接,老的已经不再使用了,详见:

        https://github.com/stm32duino/wiki/wiki/Getting-Started

        原来的链接在Arduino IDE 开发板管理中已提示弃用:

        第二:升级后的库安装目录有所改变:

        目录名从STM32改为STMicroelectronics,应该是为了日后增加更多的旗下产品,目前除了STM32外,STM8系列也支持在Arduino IDE 下编程了:

         具体内容和原来类似:

 

        第三:提供了API的说明文档,虽说不是很全,但总算是有了:

        https://github.com/stm32duino/wiki/wiki

 

        从目前状态看,ST似乎很用心于Arduino 环境的支持,几乎所有最新产品都在第一时间支持了,从核心库(core)的更新状态看,应该是十分及时的:

 

        从上述状态看,基于 Arduino IDE 编写应用程序,即便是作为产品开发,也未尝不可。毕竟方便许多,尤其是不常编程的朋友,每次使用那些专业开发工具,进入角色太费劲。如果遇上版本更新有大的改变,就更费事了。

        基于 ArduinoIDE 编程的唯一不好就是编译速度太慢,不知道是何故所致。

        据说可以改用 VSCode + PlatformIO 平台,同样可以享用和 Arduino IDE 类似的简单性,但编译速度提升了很多,我还在尝试,待有了真实体验后再与大家分享。

        使用 ArduinoIDE 的另一个不足就是无法实现经典开发方式(仿真机 + MDK)下的断点调试功能。

        但我个人觉得,逼着自己使用和软件开发人员类似的Dump 方式(linux下应该都是这样调试的)调试程序也是不错的选择,即在程序中添加语句,使用串口输出方式,将需要观察的数据和状态送出来。虽说不如断点来的方便,但程序是全速正常运行的,其运行状态更接近真实环境,这样调试完成的程序,应该更不易出现bug。

        以往由于单片机资源有限,不敢奢侈的添加无用的程序、占用有限的RAM,但现在Cortex-M系列单片机不论是程序空间还是变量空间,均可以允许为了调试增加一点代码,而且所有的单片机均带一个以上的串口,在资源上应该不成问题。

        可以用简单的增加代码方式,将程序中所关注的内容送出来,通过串口调试助手观察。

        也可以在程序的串口功能代码中,增加内存读写命令处理,编写相应的测试软件,根据需要随时读取单片机的内存状态。

        尤其对于Cortex-M系列单片机而言,其内存为线性空间,即ROM、RAM、外设特殊寄存器均在同一存储空间,同步划分不同的地址段区分。如此一来,使用内存读写功能不但可以监测到RAM空间,还可以查看外设寄存器的状态;这样不只是在程序调试期间可以用于排除故障,在产品运行期间,还可以用于分析故障原因。

        很多故障现象在设备断电后即不可重现,需要在故障状态下分析,此时仿真机是无法发挥作用的。

        当然,如果单片机已经死机导致串口无法通讯,那这种方式也是无法发挥作用的。

        不过,如果能基于RTOS编写多任务框架程序,系统某个功能异常,但串口可以工作的可能性会大大增加,从而使这种方式具备更好的实用性。

        这些已经是题外话了。

        总之,ArduinoIDE 这个环境似乎被很多专业芯片厂家所看中,有越来越多的芯片支持在此环境下编程。

        这大概就是开源的力量!

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

掌上单片机实验室 – RT-Thread + ROS2 初探(25) 得知 ROS 升级为 ROS2 后,将 rosserial 升级为可以在单片机上运行的 Micro_ROS,大大提升了性能。关键是 RT-Thread 中包含了 Micro_ROS 软件包,正好可以尝试一下,。于是有了文中的经历。 阅读详情

相关推荐

掌上单片机实验室 – RT-Thread 激活程序1(15)

在掌上单片机实验室硬件平台上,尝试应用 RT-Thread,这是第一个程序,使用 RT-Thread 官方的 RT-Thread Studio 开发环境,完成电机 PWM 驱动,涉及 PIN及 PWM 组件。

embedream的专栏 505

thread dump和heap dump

原文地址:https://bijian1013.iteye.com/blog/2221240 thread dump和heap dump 文章目录thread dump和heap dump一.dump基本概念二.利用JDK自带的工具获取thread dump文件和heap dump文件1.获取heap dump文件2.获取thread dump文件3.如果我们只需要将dump中存活的对象导出,那么...

少年乖 1452

基于Arduino的MPU6050 DMP6自稳定平台

共享一个手持自稳定云台,mpu6050 直接DMP解析3个方向角度值,再映射到舵机转向角度,实现实时自稳定,适合教学实验

linux保存线程的dump文件,Dump文件:线程dump和堆dump

一、线程dump1、我最先使用的是线程dump,看线程是否有阻塞的,比如查看同步方法的;2、线程dump是直接可以用editplus打开的,看起来很方便;二、堆dump1、速度比线程dump慢很多;2、最近api经常会无故访问不了,进程是存在的,检查日志发现是因为堆内存溢出,其它接口虽然访问到了但是不能分配内存当然也就无法成功响应,然后僵死了导致服务不可用,在重启服务之前用jmap命令生成了一份d...

weixin_30478151的博客 886

Podman修改镜像源教程(附最新docker镜像源)

Podman修改镜像源教程(附最新docker镜像源)

道长的博客 4140

麒麟V10桌面操作系统安装Qt5.12.3

在虚拟机中如何安装麒麟V10桌面系统,以及在麒麟系统中安装Qt框架,并正常编译运行Qt程序

阿龙的思考 3599

STM32duino

** 如何在Arduino IDE中开发STM32F103C8T6 ** 1. 先放上百度网盘连接:** 链接:https://pan.baidu.com/s/1fU28Yu8CT7fehsMhftpzKQ 提取码:km0u 2.要准备的东西: STM32F103C8T6(蓝色:BluePill F103C8,黑色:BlackPill F103C8) CH340 面包板(可用杜邦线代替) 可通信...

時光的小白屋 2002

NVIDIA Isaac平台体验:Isaac Sim与Isaac ROS的快速了解

NVIDIA Isaac平台是一个专为机器人和人工智能(AI)打造的加速平台,旨在为开发者提供一个全面的工具集,以加速机器人相关应用的开发和部署。材质定义语言(MDL)是一种用于描述材质属性和行为的编程语言,能够精确地定义材质的光学特性和物理属性。NVIDIA Isaac Sim 通过支持 MDL,进一步提升了仿真环境中材质的真实感和细节表现。精确的材质定义:MDL 允许开发者精确地定义材质的光学特性和物理属性,如反射率、折射率、粗糙度和透明度等。这使得仿真环境中的物体看起来更加真实和自然。动态材质。

全世界的博客 4万+

Dump文件的生成和使用

1 简介 第一次遇到程序崩溃的问题,之前为单位开发了一个插件程序,在本机运行没有出现问题,但把生成的可执行文件拷贝到服务器上一运行程序,刚进入插件代码,插件服务就崩溃了,当时被这个问题整的很惨,在同事的帮助下了解到,对于程序崩溃,最快的解决方式是生成dump文件,通过生成dump文件使用调试工具进行调试,还原程序崩溃时的状态,能够起到快速定位排查问题的作用。Dump文件是进程的内存镜像。可以...

不当初 15万+

SpaceMesh Mining 教程

當參與Spacemesh的用戶在完成P盤工作後需要完成兩個部分工作:PoET+PoST,這兩部分均是在不同的規定時間完成,具體可參考後續的時間表。註意!只有PoET和PoST均完成的用戶才可以獲得收益。Spacemesh相關P盤教程:說明:1.Spacemesh每個紀元epoch周期為14天,在8月7日完成PoET的將在8月20日完成PoST,收益將在8月25日後發放(之後用戶收益將每隔14天發放一次) 後續PoET時間為8月7日+N14 **後續PoST時間為8月20日+N。

Yc Chan 的个人博客 1043

基于STM32F4的NRF24L01驱动程序

基于STM32F4xx的NRF24L01驱动程序 提示:硬件平台基于STM32F427VIT6、NRF24L01模块 文章目录基于STM32F4xx的NRF24L01驱动程序前言一、NRF24L01简单介绍1,什么是NRF24L012,NRF24L01通信方法3,NRF24L01通信原理4,地址分配&通道分配问题二、STM32CubeMX配置三、添加底层文件1,添加.c/.h文件到工程中2,使用说明四,下载 前言 提示:本例程采用STM32CubeMX配置底层,采用硬件SPI方式驱动NRF24

qq_43603289的博客 2812

掌上单片机实验室 — 编程环境(续)(6)

STM32Duino 的支持越加完善,基本可以应对商业应用程序的开发。作为学习的平台已经是很完美了,Arduino 原生的 MCU 有点小众,而 STM32 系列 MCU 可以说是绝对主流了,关键是性价比极高,可以发挥的编程空间较大,撇开由于芯片荒所致的涨价,一定是学习的不二选择。Arduino的加持使其更加容易上手。

embedream的专栏 196

[调参神器]使用VOFA+上位机进行PID调参(附下位机代码)

​ 简单地来说,VOFA+是一个超级串口助手,除了可以实现一般串口助手的串口数据收发,它还可以实现数据绘图(包括直方图、FFT图),控件编辑,图像显示等功能。​ 如果只是想要用VOFA+来进行数据绘图,直接使用一个波形图控件就行,但是如果想要把VOFA+当作一个长期使用的调参助手,我们最好设置一下控件。VOFA+简洁好用,但是又有点太简洁了,部分体验并不是很好(比如不能调整控件大小,保存文件不太方便等),所以如果学有余力,推荐自己用QT/PyQT写上位机。接下来,我们要将指令中的数据提取出来。

qq_56089182的博客 4万+

掌上单片机实验室 — 编程环境(3)

一、背景 因为单片机学习是软硬结合的,离开软件,单片机无法工作。所以需要准备合适的编程环境。 二、需求 作为学习用的编程环境,我觉得应该满足: 上手容易;不需要花很多时间学习后才能正确使用。 环境参数设置方便,有些编程环境参数设置过于复杂,对于做实际项目是有价值的,但对于学习者而言,就是障碍了。 无版权问题(无需花钱购买,或盗版) 有完善、丰富的参考资料。 三、选择及准备 3.1 选择 因为目前硬件基础选择的是 STM32 系列单片机,可选择的编程环境有: 经典的IAR或MDK编程.

embedream的专栏 552

在 SAP BTP ABAP Environment 里把 ATC 跑成流水线:定时检查 + 告警邮件,一次打通

摘要 本文介绍了如何在SAP BTP ABAP环境中实现ATC检查的自动化流程。通过将ATC与质量体系结合,构建从检查到通知的完整闭环:使用Custom Code Analysis Project定义检查范围,通过Application Jobs实现定时调度,利用标准CDS View读取结果,最后开发通知作业发送告警邮件。文章重点阐述了云环境下不同于On-Premise的实现思路,包括Test Variant设计、作业编排模板应用等关键环节,并提供了可落地的代码示例。这种自动化方案能有效解决人工检查的滞后性

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 167

康耐视visionpro-CogBlobTool工具详细说明

康耐视visionpro-CogBlobTool工具详细说明

视觉人机器视觉的博客 1724

掌上实验室V8系列教程(一)新建Keil项目

可以随身携带的实验室

lg28870983的博客 8341

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

掌上单片机实验室 — 激活(4)

前面已经构建了掌上单片机实验室的硬件基础,并选择、安装了配套的编程环境,目前要做的工作就是将它激活,即基于所选择的 Arduino IDE,在构建的硬件上,编写相应程序,使所提供的硬件可以运转,成为一个可以用的实验平台。

embedream的专栏 1441

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

掌上单片机实验室 – 构想(1)

一、背景 突如其来的疫情,打乱了大学生的正常学习氛围,传统的校园学习模式无法实施,虽说网上教学做了相应的弥补,但对于多数工科课程,只靠线上教学很难完成,单片机课程就是其中之一。 单片机这类工科课程有较强的实践需求,纸上谈兵很难达到预期的效果,所以开设这门课程的学校均建立有相应实验室。 而经典的实验室设备很难让学生个人拥有,在家独立完成实验,因为实验设备的设计及实验内容的编制均未考虑到这样的场景。 能否设计一款适合学生单独拥有,且可以自己完成实验的单片机学习实验装置呢? 本文尝试用我设计的第四.

embedream的专栏 395

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

掌上单片机实验室 - 程序框架设计(7)

单片机学习很大比例是编程的学习,即:如何将现实需求转换为程序语言,让单片机执行,从而解决现实世界的问题。 而编程的最佳方式是构建一个良好的程序框架,以此为基础,再根据具体要解决的问题,增加相应的处理部分即可,这样程序的构建和调试会很高效。 本文尝试基于 Free RTOS 构建掌上实验室的程序框架,以此为基础,展开后续的学习。

embedream的专栏 993

掌上单片机实验室 – 尝试RT Thread(14)

前面介绍了掌上单片机实验室的构想,以及以 Arduino、Free RTOS为基础的学习过程,如果针对非计算机专业的学生而言,所述内容作为单片机或嵌入式的课程素材,应该够了,因为他们只有大约40~60学时,能把前述的学习内容消化实施,再在此基础上做些拓展,结合自己的兴趣,做些个性化的应用尝试,已经能初步掌握单片机的应用技能。RT-Thread是开源的,完全可以在实际应用中,遇到问题或想提高性能或代码效率时,用单步调试方式,跟踪到系统代码中,琢磨如何结合应用的需求去优化。期待国人自己的OS能做的更好。

embedream的专栏 284

掌上单片机实验室 – 用PC作为UI (8)

前面构建掌上实验室程序框架时,提出了用串口作为单片机人机交互界面的概念,并在框架中将串口命令接收、串口数据发送作为基础功能编写完成。 程序框架具备了串口作为 UI 的能力,就需要有相应的外设与其配合,以实现所需的人机交互功能。前面提过,PC是可选的设备之一。本篇就以 PC 为载体,配合前述程序框架的串口收发功能,实现初步的人机交互,即:UI。

embedream的专栏 723

掌上单片机实验室 — 硬件基础(2)

一、背景 在“掌上单片机实验室-构思”一文中,探讨了基于四代圆梦小车实现掌上实验室的可能和益处。本文开始尝试具体设计一套基于此构思的掌上单片机实验室,先从硬件基础着手。 二、需求 硬件基础的核心需求为: 一个可以灵活运动的小车底盘 体积足够小,以便降低使用环境的要求 成本足够低,以适应学生个人拥有 便于使用单片机核心板驱动,小车行走无需增加额外增加器件。 可灵活替换控制用单片机,以适应不同的教学需求 便于根据扩充相应的模块,如:通讯、传感器 使用方便,如电源、充电。 三、设计..

embedream的专栏 407

掌上单片机实验室 - 实现运动功能(10)

前面已完成了硬件激活、编程环境选择、软件框架构建,并且基于软件框架尝试了基于 RTOS 编程,为在此软硬件环境下学习单片机编程做了充分的准备。 从本篇开始,开始以其为载体,一步步完善其功能、性能,并基于其具备的能力去完成一些有趣的任务,在这个过程中,逐步掌握用单片机解决实际问题的技能。

embedream的专栏 616

掌上单片机实验室 – 检验自整定适应性(12A)

在另一个不同的小车底盘上,验证 PID 参数自整定的适应性,从而确定 PID 自整定库是否实用。 检验的结果应该说相当满意!至少对于直流电机调速而言是可用的。

embedream的专栏 490

AT-WorkBench入门(基于掌上实验室v9)

根据掌上实验室V9电路图,LED1由PB6控制,PB6输出高电平,LED1亮。项目名称和位置自行定义,工具链/IDE选择KEIL_v5。不要选关闭,会导致以后不能用Keil调试!运行程序后,LED1点亮。

lg28870983的博客 45
上一篇: 掌上单片机实验室 – 实现PID自整定(11)
下一篇: 掌上单片机实验室 — 检验自整定效果(12)
嵌入之梦
博客等级 码龄21年 134粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入之梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值