当前位置: 首页 > news >正文

MM32开发教程(LED灯)

文章目录

  • 前言
  • 一、MM32介绍和STM32的区别
  • 二、板载LED灯原理图
  • 三、代码编写
  • 总结


前言

今天将为大家介绍一款性能高体积小的MM32,这款开发板出自百问网团队。他就是灵动的MM32F3273,他体积非常小便于携带。
有128KB的SRAM、512KB的Flash、而且还支持双TypeC接口、板载DAP-Link、支持C语言和python开发。其他功能以后为大家一 一体验,今天我们就先点亮一个LED灯吧。

一、MM32介绍和STM32的区别

MM32和STM32都是基于ARM架构下所设计的。
MM32和STM32的相同点主要是:两者都支持32位处理器;两者都支持多种I/O接口,如SPI、I2C等;两者都支持内部存储器和外部存储器;两者都支持多种外设,如ADC、DAC等。
本款MM32采用了ARM Cortex-M3的架构,主频高达120MHZ。包含多达 3 个
12 位的 ADC、2 个比较器、2 个 16 位通用定时器、2 个 32 位通用定时器、2 个 16 位基本定时器和 2 个 16 位高级定时器。还包含标准的通信接口:2 个 I2C 接口、3 个 I2S 接口、3 个 SPI 接口、1 个 USB OTG 全速接口、1 个 CAN 接口、1 个 SDIO 接口和 8 个UART 接口。

二、板载LED灯原理图

板子上的用户LED灯连接到了PA1,根据原理图可以知道PA1输出0时LED点亮,PA1输出1时LED熄灭。所以我们需要将PA1设置为输出模式。
在这里插入图片描述

三、代码编写

假如之前学习过STM32那么这款MM32还是非常容易上手的,代码的逻辑都是差不多的,只不过是函数名字有些变化。
这里我们使用模块化编程:
driver_led.h

#ifndef __DRV_LED_H
#define __DRV_LED_H#define BOARD_LED_PIN             GPIO_PIN_1
#define BOARD_LED_PORT            GPIOA#define BOARD_LED_GPIO_CLK_EN()   RCC_EnableAHB1Periphs(RCC_AHB1_PERIPH_GPIOA, true)/*LED初始化函数*/
void Drv_LED_Init(void);#endif

这里和STM32有一些区别的就是:RCC_EnableAHB1Periphs时钟使能函数
这个函数有两个参数:
ahb1_periphs:哪一组引脚
enable:是否使能

void RCC_EnableAHB1Periphs(uint32_t ahb1_periphs, bool enable)
{(enable) ? (RCC->AHB1ENR |= ahb1_periphs) : (RCC->AHB1ENR &= ~ahb1_periphs);
}

driver_led.c
MM32的引脚初始化流程和STM32都是一样的,这里就不多讲解了注释中已经讲解的很明白了。

#include "drv_led.h"
#include "mm32f327xx_hal_config.h"void Drv_LED_Init(void)
{/* 调用GPIO的HAL库对象结构体声明GPIO对象 */GPIO_Init_Type gpio_init;/* 使能GPIO的时钟 */BOARD_LED_GPIO_CLK_EN();/* 设置GPIO的模式 */gpio_init.PinMode  = GPIO_PinMode_Out_PushPull;gpio_init.Speed = GPIO_Speed_50MHz;/* 选择引脚初始化 */gpio_init.Pins  = BOARD_LED_PIN;GPIO_Init(BOARD_LED_PORT, &gpio_init);}

main.c
MM32没有像STM32里面HAL_Delay一样的延时函数,所以这里我们自己实现了一个延时函数,延时函数原理这里就不多做解释了。

使用GPIO_WriteBit这个函数改变GPIO引脚的状态,这里和STM32改变GPIO引脚电平状态函数都是差不多的。

#include "drv_led.h"
#include "mm32f327xx_hal_config.h"static void sw_delay(uint32_t x)
{volatile uint32_t i = x;volatile uint32_t j = 100;while(j--){for(i=0; i<x; i++){}}
}int main(void)
{/* 初始化LED */Drv_LED_Init();while(1){/* TDO Your Task */GPIO_WriteBit(BOARD_LED_PORT, BOARD_LED_PIN, 0);    // 点亮LEDsw_delay(1000);GPIO_WriteBit(BOARD_LED_PORT, BOARD_LED_PIN, 1);;   // 熄灭LEDsw_delay(1000);}
}

效果见B站:B站效果

总结

MM32是不是很有趣呢大家赶紧跟我一起学起来吧。

相关文章:

MM32开发教程(LED灯)

文章目录前言一、MM32介绍和STM32的区别二、板载LED灯原理图三、代码编写总结前言 今天将为大家介绍一款性能高体积小的MM32&#xff0c;这款开发板出自百问网团队。他就是灵动的MM32F3273&#xff0c;他体积非常小便于携带。 有128KB的SRAM、512KB的Flash、而且还支持双TypeC…...

win10安装docker

1.win10安装docker&#xff0c;前提必须是要安装WSL2。 现在Docker Desktop默认使用WSL 2来运行&#xff0c;而不是以前的Hyper-V。 WSL2 全称是Windows Subsystem on Linux。意思是&#xff0c;在win10&#xff0c;可以直接启动一个Linux。因为docker依赖Linux内核。 可查看…...

设计模式系列 - 代理模式及动态代理详解

定义 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下&#xff0c;一个对象不适合或者不能直接引用另一个对象&#xff0c;而代理对象可以在客户端和目标对象之间起到中介的作用。 结构 抽象角色&#xff1a;通过接口或抽象类声明真实角色实现的业务方法。 代…...

【分享】订阅集简云畅捷通T+cloud连接器自动同步财务费用单至畅捷通

方案场景 伴随公司发展和数字化水平提高&#xff0c;大量的财务单据需要手动审核和录入&#xff0c;这些重复机械的操作占据大量人力&#xff0c;同时极容易出现数据出错或丢失等情况&#xff0c;严重影响着企业经营效率。 使用集简云提供服务的畅捷通TCloud钉钉连接器完成财…...

GPT的发展历程

GPT是当前最火的人工智能技术之一&#xff0c;自推出以来就广受关注。但大家对这个技术了解多少&#xff0c;又知道它经历了什么&#xff1f; GPT的诞生离不开谷歌在人工智能领域的努力和研究。2004年&#xff0c;谷歌成立了人工智能实验室&#xff08;现已成为谷歌 AI实验室&…...

iOS开发笔记之九十八——关于Memory Leak总结笔记

*****阅读完此文&#xff0c;大概需要3分钟******关于Memory leak&#xff08;内存泄漏&#xff09;的问题&#xff0c;如果是面试被问这个问题以及此类问题&#xff0c;主要涉及下面3个方面&#xff1a;内存泄漏的常见场景有哪些&#xff0c;列举几个常见的例子&#xff1f;开…...

HTML基础语法

一 前端简介构成语言说明结构HTML页面元素和内容表现CSS网页元素的外观和位置等页面样式&#xff08;美化&#xff09;行为JavaScript网页模型的定义和页面交互二 HTML1.简介HTML&#xff08;Hyper Text Markup Language&#xff09;&#xff1a;超文本标记语言。网页结构整体&…...

微软新版必应gpt人工智能体验教程

大家好,我是雄雄,欢迎关注微信公众号:** 雄雄的小课堂 ** 现在是:2023年2月28日18:35:02 前言 前几天,发了一篇文章,主要介绍了如何申请新必应的内测名单,其实一共也就那几步,然后等着就行: 文章连接:new bing如何快速申请内测资格,从而体验人工智能? 今天,终于…...

你问我答|虚拟机、容器和无服务器,怎么选?

在新技术层出不穷的当下,每家企业都希望不断降低成本,并提高运营效率,一个方法就是寻找不同的技术方案来优化运营。      例如,曾经一台服务器只能运行一个应用(裸机);接着,一台服务器的资源可以划分为多个块,从而运行多个应用(虚拟化);再到后来,应用越来越多,为了方便它们…...

某建筑设计研究院“综合布线管理软件”应用实践

某建筑设计研究院有限公司&#xff08;简称“某院”&#xff09;隶属于国务院国资委直属的大型骨干科技型中央企业。“某院”前身为中央直属设计公司&#xff0c;创建于1952年。成立近70年来&#xff0c;始终秉承优良传统&#xff0c;致力于推进国内勘察设计产业的创新发展&…...

R语言绘制SCI论文中常见的箱线散点图,并自动进行方差分析计算显著性水平

显著性标记箱线散点图 本篇笔记的内容是在R语言中利用ggplot2&#xff0c;ggsignif&#xff0c;ggsci&#xff0c;ggpubr等包制作箱线散点图&#xff0c;并计算指定变量之间的显著性水平&#xff0c;对不同分组进行特异性标记&#xff0c;最终效果如下。 加载R包 library(ggplo…...

redux-saga

redux-saga 官网&#xff1a;About | Redux-Saga 中文网&#xff1a;自述 Redux-Saga redux-saga 是一个用于管理 异步获取数据(副作用) 的redux中间件&#xff1b;它的目标是让副作用管理更容易&#xff0c;执行更高效&#xff0c;测试更简单&#xff0c;处理故障时更容易… …...

【C++】-- 智能指针

目录 智能指针意义 智能指针的使用及原理 RAII 智能指针的原理 std::auto_ptr std::auto_ptr的模拟实现 std::unique_ptr std::unique_ptr模拟实现 std::shared_ptr std::shared_ptr的模拟实现 循环引用问题 智能指针意义 #问&#xff1a;为什么需要智能指针&#…...

数据结构与算法——4时间复杂度分析2(常见的大O阶)

这篇文章是时间复杂度分析的第二篇。在前一篇文章中&#xff0c;我们从0推导出了为什么要用时间复杂度&#xff0c;时间复杂度如何分析以及时间复杂度的表示三部分内容。这篇文章&#xff0c;是对一些常用的时间复杂度进行一个总结&#xff0c;相当于是一个小结论 1.常见的大O…...

IIS解析漏洞

IIS 6.0在解析文件时存在以下两个解析漏洞。 ①当建立*.asa、*.asp格式的文件夹时&#xff0c;其目录下的任意文件都将被IIS当作asp文件来解析。 例如&#xff1a;建立文件夹 parsing.asp&#xff0c;在 parsing.asp 文件夹内新建一个文本文档 test.txt&#xff0c;其内容为&…...

2023 年腾讯云轻量和CVM服务器租用价格表出炉(CPU/内存/带宽/系统盘)

腾讯云服务器的价格表是用户比较关心的问题&#xff0c;服务器的价格组成包括云服务器的机型价格、磁盘价格和宽带价格&#xff0c;主机教程网来详细说下腾讯云最新的云服务器价格表。我们以北京一区、Linux系统的云服务器为例&#xff0c;其他地域的价格会有所差异&#xff0c…...

Java学习之路002——面向对象编程

【说明】部分内容来源于网络&#xff0c;如有冲突&#xff0c;请联系作者删除。 一、面向对象编程(OOP) 2.1 对象和类的关系 2.2 面向对象的特征 2.2.1 封装 2.2.2 继承 2.2.3 多态 3、抽象 使用abstract关键字修饰的类或者方法 定义抽象类(使用abstract) // 1、定义抽象方法…...

VR直播丨颠覆性技术革命,新型直播已经到来

细数当下最火热的营销手段&#xff0c;首先浮现脑海的无疑是“直播”。前有罗永浩、李佳琦&#xff0c;后有刘畊宏和东方甄选&#xff0c;直播如日中天&#xff0c;俨然成了大众足不出户就能休闲娱乐的重要途径。 而随着虚拟现实在“十四五规划”中被列入“建设数字中国”数字…...

【微信小程序】-- WXSS 模板样式- rpx import (十三)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…...

Biotin-PEG-SVA,生物素聚乙二醇琥珀酰亚胺戊酸酯,可用于检测或分子标记

Biotin-PEG-SVA 结构式&#xff1a;PEG分子量&#xff1a; 1000&#xff0c;2000&#xff0c;3400&#xff0c;5000&#xff0c;10000中文名称&#xff1a;生物素聚乙二醇琥珀酰亚胺戊酸酯&#xff0c;生物素-PEG-琥珀酰亚胺戊酸酯英文名称&#xff1a;Biotin-PEG-SVA &#xf…...

西门子触摸屏报警处理:除了弹窗,用这个‘非中断式’方法让产线更丝滑

西门子HMI非中断报警系统设计&#xff1a;让产线效率提升30%的实战方案 在快节奏的工业现场&#xff0c;每一次操作中断都意味着产能的隐形流失。传统HMI报警弹窗就像突然按下的暂停键——操作员必须停下手中任务去点击确认&#xff0c;而流水线上的产品仍在流动。这种矛盾在汽…...

python协同过滤就业 大学生就业求职网vue 可视化统计echart

目录python协同过滤在就业领域的应用大学生就业求职网的功能需求VueECharts实现可视化统计1. **多维数据看板**2. **实时交互分析**3. **移动端适配**技术栈整合建议项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作python协同过…...

嵌入式系统中void指针与函数指针的高级应用

void指针与函数指针在嵌入式系统中的高级应用1. void指针的工程应用1.1 void指针的本质特性void指针(void*)在C语言中表示一个"不知道类型"的指针变量&#xff0c;其核心特性在于&#xff1a;int nums[] {3, 5, 6, 7, 9}; void* ptr1 nums; int* ptr2 (int*)nums;…...

从拖拽到对话:衡石Agentic BI如何重构企业数据分析的交互范式

传统BI的交互困局在商业智能发展史上,2025年或许会被标记为一个转折点。这一年,衡石科技发布的HENGSHI SENSE 6.0 Agentic BI平台,标志着数据分析从"被动工具"正式迈入"主动智能体"时代。过去二十年,"拖拽生成报表"一直被奉为BI工具的黄金标准。…...

Python异步编程:非科班转码者的指南

Python异步编程&#xff1a;非科班转码者的指南 前言 大家好&#xff0c;我是第一程序员&#xff08;名字大&#xff0c;人很菜&#xff09;。作为一个非科班转码、正在学习Rust和Python的萌新&#xff0c;我最近开始接触异步编程。异步编程是一种处理并发操作的方法&#xff0…...

OpenClaw定时任务详解:GLM-4.7-Flash每日自动生成工作报告

OpenClaw定时任务详解&#xff1a;GLM-4.7-Flash每日自动生成工作报告 1. 为什么需要自动化日报系统 上周三晚上11点&#xff0c;我盯着空白的周报文档发呆——明明这周完成了3个需求迭代和2次跨部门协作&#xff0c;却怎么都想不起具体细节。翻遍Git记录、邮件和会议纪要才勉…...

嵌入式WiFi开发 | 基于wireless_tools的交叉编译实战与移植指南

1. 嵌入式WiFi开发入门&#xff1a;为什么需要wireless_tools&#xff1f; 在嵌入式Linux开发中&#xff0c;网络连接能力往往是刚需。想象一下你的智能家居设备需要自动连接路由器&#xff0c;或者工业传感器需要通过WiFi上传数据——这些都离不开可靠的无线网络配置工具。这就…...

Hive【从SQL到MapReduce:核心架构与执行引擎深度解析】

1. Hive的核心角色&#xff1a;SQL到分布式计算的翻译官 第一次接触Hive时&#xff0c;很多人会疑惑&#xff1a;为什么要在Hadoop生态中引入这样一个"类SQL"工具&#xff1f;这要从大数据处理的痛点说起。想象你面前有一本百万页的百科全书&#xff0c;现在需要统计…...

项目介绍 MATLAB实现基于RRT-Bezier快速搜索随机树算法(RRT)结合贝塞尔曲线拟合(Bezier)进行无人机三维路径规划的详细项目实例(含模型描述及部分示例代码) 还请多多点一下关注 加

MATLAB实现基于RRT-Bezier快速搜索随机树算法&#xff08;RRT&#xff09;结合贝塞尔曲线拟合&#xff08;Bezier&#xff09;进行无人机三维路径规划的详细项目实例 更多详细内容可直接联系博主本人 或者访问对应标题的完整博客或者文档下载页面&#xff08;含完整的程序&a…...

别再让输入框‘抢焦点’了!手把手封装一个Vue扫码枪工具类SCAN,解决页面刷新监听丢失

从零构建高可靠Vue扫码枪工具库&#xff1a;SCAN类深度封装与工程化实践 扫码枪在零售、仓储、医疗等行业的Web系统中应用广泛&#xff0c;但传统实现强依赖输入框焦点&#xff0c;用户体验差且稳定性低。本文将带你从底层原理出发&#xff0c;完整封装一个无需输入框聚焦、支持…...