Advertisement

stm32F1-simple_oscillograph是一款基于野火指南者开发板的示波器,采用emwin和freertos等技术。

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
基于野火指南者开发板的简易示波器,采用emwin544与FreeRTOS协同实现,通过片上ADC进行采样,最高可达1MHz的采样速率,并利用PC5端口进行测量。此外,按下按键K1可以灵活调整采样率。同时,PA4和PA5引脚输出相同的正弦波信号,正弦波的频率则可以通过按键K2进行调节。目前该示波器的自动触发功能仅支持以stm32手册中规定的一级采样时间为1.5周期的状态下加速1us的转换时间。经过初步测试,似乎能够实现一定的信号重复性,但具体效果尚需进一步确认。即便采样频率设置为1.2MHz,其分辨率也并非很高;对于几十kHz级别的信号测量而言,仍能保持较高的准确性。然而,当信号频率超过这一范围时,其性能会显著下降。ADC的连续转换时间完全取决于ADC的时钟频率。根据手册资料显示,使用18MHz ADC时钟时,每秒可产生1,285,714个点;而使用36MHz ADC时钟则可达到2,571,428个点每秒。实际测试结果表明这些数值完全准确无误。最后,通过使用18MHz ADC时钟并由1.2MHz定时器触发转换过程,实现了每秒1,200,000点的采集速率。屏幕界面右侧设置了两个按钮,这些按钮目前主要用于测试目的,未来可扩展功能包括FFT分析和多通道输入支持。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • STM32F1简易EMWIN+FreeRTOS...
    优质
    本项目是一款基于STM32F1系列微控制器和野火指南者开发板的简易示波器。结合了EMWin图形库与FreeRTOS操作系统,实现了高效稳定的信号采集与显示功能。 基于野火指南者开发板的简易示波器使用了emWin544 和 FreeRTOS,并通过片上ADC进行采样,最高支持1MHz的采样频率,在PC5引脚测量信号。K1按键可以用来调整采样率。 同时,PA4和PA5两个引脚发出相同的正弦波信号,其频率可以通过按下K2键来调节。根据STM32手册的规定,如果使用一级采样的话,每次转换的时间为1.5周期。经过测试发现,在某些情况下确实能实现稍微重复的效果,但具体原因尚不明确。 当ADC以连续模式进行转换时,所需时间完全由ADC的时钟决定。依据文档说明,在18MHz和36MHz的ADC时钟下分别可以达到每秒约1,285,714点和2,571,428点的采样率,并且测试结果与理论值一致。 最终,我们选择了使用18MHz ADC时钟并由定时器以1.2MHz频率触发转换的方式来实现大约每秒1,200,000个数据点采集。屏幕右侧设计了两个按钮,目前仅用于测试功能,在未来可以增加FFT和多通道支持等功能扩展。
  • [EmbedFire]《STM32库实战——》-20240202.pdf
    优质
    本书为读者提供了一个系统学习STM32微控制器和使用野火指南者开发板进行实践的平台,通过详尽的代码示例和项目案例,帮助工程师掌握STM32库函数的应用技巧。 根据提供的文档信息,我们可以归纳出以下关键知识点: ### 一、项目背景及目标 - **项目名称**:STM32库开发实战指南 - **开发板型号**:野火指南者开发板(EmbedFire) - **发布时间**:2024年02月02日 - **项目概述**: - 指南通过实际案例教授读者如何使用STM32微控制器进行开发。 - 强调了实践的重要性,并提供了配套的例程代码供学习参考。 - 项目秉承开源精神,鼓励读者在学习过程中相互交流和分享经验。 ### 二、书籍内容概览 #### 第1章 前言与学习必读 - **学习顺序**:建议读者按照章节顺序逐步学习,以确保对STM32开发有一个系统的理解。 - **参考资料**:除了本书外,还推荐了一些额外的参考资料帮助深入理解STM32各个方面。 - **编写风格**:书中采用易于理解的语言,并辅以大量实例和图表解释复杂概念和技术细节。 - **配套硬件**:重点介绍了野火指南者开发板(EmbedFire)的特点及其在学习过程中的应用。 #### 第2章 如何安装KEIL5和打开例程 - **KEIL5简介**:KEIL5是一款广泛使用的嵌入式软件开发工具,适用于ARM微控制器的编程。 - **安装流程**: - 首先介绍了获取KEIL5安装包的方法。 - 详细说明了如何设置安装路径等步骤来完成安装过程。 - 安装完成后,指导读者如何安装STM32芯片包以实现STM32开发的关键步骤之一。 - 最后讲解了打开配套例程工程的流程。 #### 第3章 如何用DAP仿真器下载程序 - **DAP仿真器介绍**:用于调试和编程ARM微控制器的一种接口。 - **硬件连接说明**:介绍了如何正确地将DAP仿真器与开发板连接起来,确保后续操作顺利进行。 - **仿真器配置**: - 详细指导了设置仿真器驱动、选择正确的端口等具体步骤。 ### 三、其他重要知识点 - **开源精神**:强调项目的开放性,并鼓励读者参与社区共同推动技术进步。 - **关于野火**:简单介绍了发起方——野火电子,他们在嵌入式开发领域有丰富的经验和资源。 《STM32库开发实战指南》是一本实用的书籍,系统地介绍STM32的开发知识并提供实践指导。适合初学者和有一定基础的开发者阅读,帮助读者掌握基本操作、KEIL5使用方法以及如何利用DAP仿真器进行程序下载和调试。
  • STM32F1 FreeRTOS_V1.0
    优质
    《STM32F1 FreeRTOS开发指南_V1.0》是一份详尽的手册,专为开发者提供关于如何在STM32F1系列微控制器上使用FreeRTOS实时操作系统进行高效编程的指导。 ### STM32F1 FreeRTOS开发手册_V1.0 知识点解析 #### 一、FreeRTOS简介 ##### 1.1 初识FreeRTOS **1.1.1 什么是FreeRTOS?** FreeRTOS(免费实时操作系统)是一款由Richard Barry开发并维护的开源实时操作系统内核。它提供了基础的实时操作系统功能,如任务调度、任务间同步与通信、中断处理等,并且可以被轻松地移植到多种微控制器上。 **1.1.2 为什么选择FreeRTOS?** - **成本效益高**:FreeRTOS是免费的开源软件,降低了项目成本。 - **资源占用少**:适用于资源受限的嵌入式系统。 - **可移植性强**:支持多种微控制器,包括STM32F1系列。 - **社区支持广泛**:拥有活跃的开发者社区和丰富的文档技术支持。 **1.1.3 FreeRTOS特点** - **可裁剪性**:可以根据实际需求定制系统功能。 - **实时性能**:提供快速的任务调度机制,满足实时应用的需求。 - **模块化设计**:内核与外围组件分离,便于扩展。 - **多任务支持**:支持多个任务同时运行,提高系统的并行处理能力。 **1.1.4 商业许可** FreeRTOS遵循MIT许可证协议,这意味着它可以用于商业用途而无需支付版权费用。这一特性使得FreeRTOS在工业界得到了广泛应用。 ##### 1.2 磨刀不误砍柴工 **1.2.1 资料查找** 在学习和使用FreeRTOS之前,了解如何查找相关资料非常重要。以下是一些推荐的资源: 1. **官方文档**:这是最权威的信息来源,包含了详细的API说明、示例代码和最佳实践指南。 2. **开发者论坛**:如Stack Overflow等平台可以帮助解决具体问题。 3. **技术博客**:许多经验丰富的开发者会分享他们在使用FreeRTOS过程中的心得和技巧。 4. **在线课程**:YouTube、Coursera等平台上提供的教程视频有助于理解复杂的概念。 **1.2.2 FreeRTOS官方文档** 官方文档是深入理解FreeRTOS的关键资源。它通常包括以下几个部分: - **用户指南**:介绍如何安装和配置FreeRTOS。 - **API参考**:详述了每个函数的功能和用法。 - **示例代码**:提供了具体的代码示例来说明如何使用FreeRTOS的各种特性。 - **常见问题解答(FAQ)**:回答开发者在使用过程中遇到的一些常见的问题。 **1.2.3 Cortex-M架构资料** 由于STM32F1系列微控制器基于Cortex-M3架构,因此了解该架构的特点对于移植FreeRTOS至关重要。相关资料包括但不限于: - **Cortex-M3处理器手册**:详细介绍了Cortex-M3架构的设计理念和内部结构。 - **Cortex-M3编程指南**:提供了编写高效代码的指导原则。 - **STM32F103参考手册**:包含STM32F103系列微控制器的具体规格和操作指南。 ##### 1.3 FreeRTOS源码初探 **1.3.1 FreeRTOS源码下载** FreeRTOS的源代码可以从其官方网站或GitHub仓库中获取。下载完成后,应仔细研究以下几个核心文件夹: - **Source**:包含FreeRTOS的核心代码。 - **Demo**:提供了一些示例项目,展示了如何使用FreeRTOS的各种特性。 - **Portable**:存放了针对不同微控制器的移植层代码。 **1.3.2 FreeRTOS文件预览** FreeRTOS的文件结构清晰,主要分为以下几个部分: - **include**:头文件,定义了各种宏和数据类型。 - **portableMCUCMSISCM3**:特定于Cortex-M3架构的移植层代码。 - **tasks.c**:实现任务管理功能的核心文件。 - **queue.c**:实现队列功能的核心文件。 - **semphr.c**:实现信号量功能的核心文件。 - **timers.c**:实现定时器功能的核心文件。 #### 二、FreeRTOS移植 **2.1 移植前准备** 在开始将FreeRTOS移植到STM32F1系列微控制器之前,需要完成以下准备工作: - **选择合适的开发工具**:例如Keil MDK-ARM或IAR Embedded Workbench for ARM。 - **搭建开发环境**:安装必要的软件工具,如编译器、链接器等。 - **熟悉STM32F1系列微控制器**:理解其架构特点和硬件资源。 **2.2 移植步骤** - **配置启动文件**:根据微控制器的内存布局调整启动文件。 - **实现移植层代码**:完成与硬件相关的初始化工作。 - **配置FreeRTOS
  • [EmbedFire]《[]LwIP应实战——STM32》—20210122.pdf
    优质
    本书为嵌入式开发者提供了使用LwIP协议栈在野火STM32平台上进行网络编程的实战教程,详细解析了TCP/IP协议及其在网络应用开发中的实现方法。 该文档是一份关于LwIP协议栈应用开发的实战指南,内容涵盖了网络协议、LwIP协议栈的使用和编程接口、开发平台介绍、网络接口管理、内存管理、网络数据包处理以及无操作系统和有操作系统环境下LwIP的移植方法。以下将详细解析文档中提到的知识点。 1. 网络协议简介 网络协议是计算机之间交换数据所遵守的一系列规则,它规定了通信内容的格式和处理方式。文档介绍了网络协议的分层模型,包括物理层(PHY)、数据链路层(MAC)等,并解释了在不同协议层之间数据报文如何进行封装和拆封。 2. LwIP简介 LwIP是一个开源的TCP/IP协议栈,专为嵌入式系统设计,它具有轻量级、模块化的特点。文档提到了LwIP的优缺点,并指导如何获取和查看LwIP源码文件以及源码中的符号列表。文档还介绍了LwIP的三种编程接口:RAW API、Callback API和Socket API。 3. 开发平台介绍 本部分介绍了以太网的基础知识,STM32的ETH外设,以及MII和RMII接口。此外,还涉及了PHY芯片LAN8720A的配置,以及开发STM32网络应用时硬件和软件的设计考虑,包括如何获取STM32裸机工程模板以及如何添加和修改相关配置文件。 4. LwIP的网络接口管理 这部分内容讲解了LwIP中netif结构体的定义与使用,netif相关的底层函数,以及ethernetif.c文件中的网络接口初始化和底层函数。这包括ethernetif_init()和low_level_init()函数。 5. LwIP的内存管理 LwIP支持多种内存管理策略,包括固定大小的内存块、动态内存池(POOL)、动态内存堆。文档解释了这些内存管理策略的原理,以及如何使用C库的malloc和free来管理内存。同时,文档还指导如何在LwIP中进行相关配置。 6. 网络数据包 网络数据包处理是网络通信的核心,文档从TCP/IP协议的分层思想开始,介绍了LwIP的线程模型、pbuf结构体以及其类型。文档详细讲解了pbuf的分配、释放和其他操作函数,并介绍如何在网卡中使用pbuf,包括low_level_output()和low_level_input()等函数。 7. 无操作系统移植LwIP 本章节指导如何将LwIP移植到裸机工程中。具体步骤涵盖添加LwIP到裸机项目、移植头文件、编写网络驱动程序、设置时基及协议栈初始化方法,以及获取数据包的策略。文档还特别介绍了ping命令的具体解析和使用查询方式与中断方式获取数据包的方法。 8. 有操作系统移植LwIP 当需要在操作系统环境下使用LwIP时,文档提供了以FreeRTOS为例的操作系统集成指南。它详细指导了如何拷贝并添加FreeRTOS源代码、指定头文件路径、修改中断处理程序以及编写sys_arch.c等关键配置文件,并介绍了网卡底层驱动的实现方法及协议栈初始化步骤。 总结而言,本手册通过实例和代码讲解提供了丰富的LwIP应用开发细节。适合希望掌握基于STM32平台的LwIP开发工程师学习参考。通过这份指南,开发者可以了解并实践如何在无操作系统和有操作系统环境下移植使用LwIP协议栈实现网络通信功能。
  • STM32F103硬件资料(含原理图)
    优质
    本资源提供野火STM32F103指南者开发板详尽硬件资料,包含完整电路原理图,助力嵌入式开发者深入理解与设计。 野火STM32F103指南者开发板硬件资料包括原理图等相关文档。
  • 《STM32 HAL库实战——以挑战为例》-20210122.pdf
    优质
    本书为读者提供了一套基于STM32 HAL库和野火挑战者开发板进行硬件抽象层编程的实际操作指南,助力嵌入式开发者掌握高效开发技巧。 本段落是一篇基于STM32 HAL库的教程文章。HAL库全称硬件抽象层(Hardware Abstraction Layer),它为各种外设提供了一套统一的操作接口,从而使得开发者能够更方便地进行底层驱动程序的设计与开发工作。对于初学者而言,通过学习这篇教程可以快速掌握如何使用HAL库来编写STM32的代码,并且能够在实际项目中应用这些知识。
  • 《LwIP应实战——STM32全系列(M4-M7)》.pdf
    优质
    本书为读者提供了一套全面而深入的学习方案,旨在帮助开发者掌握基于LwIP协议栈在STM32微控制器上的网络编程技巧。通过结合理论与实践,特别是针对野火STM32全系列(M4-M7)开发板的实例分析和项目实战,使读者能够迅速提升嵌入式系统中的TCP/IP网络应用能力。 《LwIP应用开发实战指南—基于野火STM32全系列(M4-M7)开发板》.pdf 这本书提供了关于使用LwIP协议栈在野火的STM32全系列产品上进行网络应用程序开发的实际指导和技巧,涵盖了从入门到高级的各种内容。
  • 】全面掌握STM32-F103_f103_例程_STM32F103_stm32f103_
    优质
    《野火》STM32-F103指南是一本面向工程师和爱好者的实用教程,全面解析了STM32F103微控制器的开发技巧与例程应用。 STM32F103指南者开发资料包括例程及详细说明,并涵盖开发板模块的方法。
  • ?】全面掌握STM32-F103_STM32F103__
    优质
    《野火?》是一本详尽介绍STM32-F103微控制器使用与开发的手册,提供了从基础到高级的指南,帮助工程师和爱好者全面掌握STM32F103系列芯片的应用。 《野火的零死角玩转STM32—F103指南》是一份非常有用的资料。