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

51单片机(三)—— 51单片机集成开发环境介绍 一、开发环境安装 能够进行51单片机的集成开发环境比较多,比较常用的是Keil C51,可以从相应的网站上下载,如下图所示为Keil C51的安装文件 点击“Setup.exe”,出现如下图所示的窗口。 点击上图中的“Full Version”,出现如下图所示的窗口 点击“Next”,出现如下图所示的窗口。 点击“Yes”,出现如下图所示的窗口 这个... 阅读详情

        最近在帮朋友做个项目时,再次使用 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 这个环境似乎被很多专业芯片厂家所看中,有越来越多的芯片支持在此环境下编程。

        这大概就是开源的力量!

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

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

相关推荐

掌上单片机实验室 – RT-Thread + ROS2 初探(25)

得知 ROS 升级为 ROS2 后,将 rosserial 升级为可以在单片机上运行的 Micro_ROS,大大提升了性能。关键是 RT-Thread 中包含了 Micro_ROS 软件包,正好可以尝试一下,。于是有了文中的经历。

embedream的专栏 1612

【CH559L单片机】基于Arduino框架下实现USB CDC虚拟串口打印ADC数据

【CH559L单片机】基于Arduino框架下实现USB CDC虚拟串口打印ADC数据

perseverance51博客 1433

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

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

embedream的专栏 505

STM32duino_在线升级

Boot Loader配置 设置ROM、RAM地址 //链接器脚本文件路径 Arduino\hardware\STM32\STM32F1\variants\generic_stm32f103z\ld\stm32f103ze.ld //修改内容 MEMORY { ram (rwx) : ORIGIN = 0x20000000, LENGTH = 64K //内存起始地址及长度 rom ...

梦回南柯的博客 879

【探秘】二维异形件重叠移除算法:从度量到消除的实战解析

本文深入解析二维异形件重叠移除算法的核心技术与实战应用,涵盖重叠度量、零件扰动策略及消除方法。通过NFP(临界多边形)技术、空间分区加速等优化手段,有效解决异形件排版中的重叠问题,提升材料利用率和计算效率。适合制造业、CAD软件开发者及算法工程师参考。

weixin_28698059的博客 251

ArduPilot代码解析之四 — 姿态和位置控制

ArduPilot采用级联控制架构实现飞行器的姿态和位置管理。该系统通过位置→速度→加速度→姿态→角速率→电机指令的逐级转换,将高级指令转化为底层执行信号。位置控制采用三维独立控制,水平轴与垂直轴分别处理;姿态控制通过角度误差→角速率→电机输出的两层级联实现。系统支持多种输入模式,并内置运动学整形功能确保轨迹平滑。不同飞行器类型(多旋翼、直升机、潜艇等)有专门的调参方案,通过调整PID参数、加速度限制等实现最优控制性能。该架构兼顾控制精度与飞行稳定性,适用于各类自主飞行场景。

rainercool的专栏 824

STM32学习笔记之简易Bootloader串口升级设计

概念简介 在学习制作串口升级 Bootloader 之前,我们先了解一下STM32的 IAP (In Application Programming)即在应用编程,IAP是用户自己的程序在运行过程中对 User Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级. 设计这样的功能需要有两个项目代码: Bootloader...

智小星的博客 2万+

火山引擎实时对话AI实战:5分钟搞定WebRTC+大模型+ASR/TTS全链路集成

本文详细介绍了如何利用火山引擎的实时对话AI解决方案,快速集成WebRTC、大模型、ASR和TTS服务,构建低延迟、高保真的实时语音对话应用。通过实战代码示例,从环境准备、音频流管理到全链路串联与性能优化,为开发者提供了一套端到端的集成指南,适用于智能客服、在线教育等互动场景。

weixin_29051245的博客 1128

51单片机入门教程(0)—— 开发环境配置

51单片机入门教程(0)—— 开发环境配置 本教程包含51单片机开发环境Keil_C51的安装、破解和汉化,以及51单片机仿真环境proteus的安装、破解。 (说明:本教程仅供学习交流之用,禁止任何商业用途!请在24小时之内删除,如要使用Keil请购买正版) 1、 Keil_C51 1.1 keil_c51简介 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软...

郭义臣的博客 3万+

【数据集】中国陆地生态系统通量观测网 ChinaFLUX

【数据集】中国陆地生态系统通量观测网 ChinaFLUX

WW、forever的博客 187

LED灯闪烁实验:实验介绍

每个章节都会单独进行验证工作,例如Simulink开发的应用层软件,会在Simulink-TestHarness中进行仿真,通过Scope示波器模块输出0-1交替的结果。CubeIDE集成双方的代码后,会烧写到开发板中验证是否按照定义的时间进行闪烁。ST-LINK V2是STM32开发生态系统中常用的硬件调试接口,能够连接微控制器与开发环境,实现程序的下载、调试和分析。STM32F103C8T6最小系统板是基于STM32F103C8T6微控制器的开发板,本实验会涉及使用板载的连接PC13引脚的LED灯。

u013288925的博客 457

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

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

embedream的专栏 309

Python编程基础05:运算符与表达式

文章目录一、算术运算符1、分类说明表2、注意事项3、案例演示任务1、计算成绩差与平均成绩课堂练习:编程处理带余除法。任务2、打印购物小票 运算符就是专门用于告诉程序执行特定运算或逻辑操作的符号。表达式是指由常量、变量和运算符组成的一个算式。编写程序对数据进行处理,其实处理就是对数据实施各种各样的运算,搞懂运算符与表达式是我们编写程序的基础性工作,本次讲课笔记通过案例讲解各种运算符的用法以及正确书写Python表达式的注意事项。 一、算术运算符 Python中的算术运算符就是用来处理四则运算的符号,也是

howard2005的专栏 3119

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

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

embedream的专栏 552

SAP SLT REODPS_REPL API 的使用介绍

本文聚焦 SAP 数据复制生态中的 RODPS_REPL(常被误写为 REODPS_REPL),解析其作为 ODP(Operational Data Provisioning)标准接口的核心功能与应用场景。RODPS_REPL 是 SAP 提供的 ABAP 接口集合,支持从 ODP 上下文(如 ODP_SAPI、ODP_CDS)执行初始化装载和增量捕获,被 SAP BW、Datasphere 及第三方工具(如 Azure Data Factory、Qlik Replicate)广泛调用。 关键要点: 核心对

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

OpenClaw实现多agent协作研究

本文介绍了如何构建多agent协作系统,通过飞书机器人实现任务分配与执行。系统包含三个agent:research_leader(总调度)、research_content(内容生成)和research_review(内容审核)。详细说明了agent配置方法(包括创建命令、权限设置)、飞书channel绑定方式,以及通过共享目录和会话机制实现协作。最后展示了应用示例,用户只需向leader机器人下达任务,系统即可自动完成内容生成和审核的全流程。

hhue2007的专栏 616

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

可以随身携带的实验室

lg28870983的博客 8341

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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

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

embedream的专栏 1442

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

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

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

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

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

embedream的专栏 395

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

掌上单片机实验室 - 程序框架设计(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

【蓝桥杯单片机入门记录】认识单片机

单片机入门笔记。单片机硬件平台 单片机的发展过程 单片机开发板 单片机基础知识 电平 数字电路中只有两种电平:高和低 二进制(8421码) 十六进制 二进制数的逻辑运算 “与” “或” “异或” 标准C与C51 如何学好单片机 端正学习的态度、培养自学能力、要有远大的目标 要有学习的恒心、面对挫折的准备 树立起学习勇气 要追求质量而非速度,基础部分知识量大而小且必须 无论简单还是复杂的程序,一定要自己写出 无论出现什么样的错误,一定要找到错在哪 多写、多练、多想 学

La_gloire的博客 1779

掌上单片机实验室 – RT-Thread 应用程序框架(17)

通过跟踪调试,发现发送方式基本是阻塞完成的,故默认按阻塞逻辑处理,功能是实现了,后续再仔细分析一下。1)RT-Thread 创建线程多了一个参数:Slice,按说明是在轮流执行时,线程的执行时间,单位为 Tick,也就是说,RT-Thread 可以定义每个线程在轮流执行时的时间,而非每次Tick都转换线程。我觉得:就RT-Thread的学习而言,单个功能的示例官方已经提供,缺少的是结合实际需求(或接近实际的需求)的编程示例,比如说多文件的编程,因为随着代码增加,放在一个文件中会导致阅读费力,调试困难;

embedream的专栏 612
上一篇: 掌上单片机实验室 — 激活(4)
下一篇: 掌上单片机实验室 - 程序框架设计(7)
嵌入之梦
博客等级 码龄21年 134粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值