芯片GPIO的一些配置(一些工作生活记录)

高通qcom8550 sensor bring up调试总结 阅读详情

年初所说的换工作,终于在上月末完成,起因是上家公司领导又让我开始做安霸平台APP,然而不加薪,上半年因为练车问题,推迟了辞职,(因为公司可以随便请假),申请的APP开发面试,很不顺利,如果继续做APP估计以后会失业,找到现在炬力这家公司,做嵌入式芯片方案,现在的工作内容是公司自己全套的蓝牙方案。

现在学习FM_AP以及FM_ENGINE,需要了解QN8035FM芯片,这个链接有详细说明:https://wenku.baidu.com/view/e3b05e3c178884868762caaedd3383c4bb4cb4be.html?from=search



1、          上拉输入(GPIO_Mode_IPU)

 
上拉输入就是信号进入芯片后加了一个上拉电阻,再经过施密特触发器转换成0、1信号,读取此时的引脚电平为高电平;
 
2、          下拉输入(GPIO_Mode_IPD)
 
下拉输入就是信号进入 芯片后加了一个下拉电阻,再经过施密特触发器转换成0、1信号,读取此时的引脚电平为低电平;
 
3、          模拟 输入(GPIO_Mode_AIN)
 
信号进入后不经过上拉电阻或者下拉电阻,关闭施密特触发器,经由另一线路把电压信号传送到片上外设模块。比如传送给ADC模块,由ADC采集电压信号。所以可以理解为模拟输入的信号是未经处理的信号,是原汁原味的信号。虽然我也知道这样表达不准确。
 
4、          浮空输入(GPIO_Mode_IN_FLOATING)
 
信号进入芯片内部后,既没有接上拉电阻也没有接下拉电阻,经由触发器输入。
 

5、    开漏输出(GPIO_Mode_Out_OD)


开漏输出大致意思:设置引脚输出为“1”时,该引脚处于开漏,也就是相当于浮空状态; 设置引脚输出为“0”时,该引脚将拉低电平。

 

I2C总线的SDA引脚就使用了开漏输出功能。也就是需要在释放SDA总线时,只需要将SDA设置输出为“1”就行了。


开漏输出就是不输出电压,低电平时接地,高电平时不接地。如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电源电压。这种方式适合在连接的外设电压比单片机电压低的时候。

用作I2C时,输出1,处于悬空状态,外接上拉电阻,就可以输出成外设电源的电压。



2024年终总结 2024年3月7日-3月8日,很荣幸代表公司去福州参加了瑞芯微第八届开发者大会,会议规模非常宏大,现场展出的新产品让人目不暇接,各种新技术令人大开眼界,让我对半导体芯片产业有了更加深刻的认识,小到收音机,大到航天设备都离不开芯片产业的支持,从我们所有见到的听说的甚至从来没见过的电子产品,全部都是半导体芯片的身影,这一次的经历让我更加坚信,未来是属于我们电子行业的。2024年的工作已经接近尾声, 趁着这几天工作间隙,回顾2024,展望2025,做一份总结报告和大家进行分享。 阅读详情

相关推荐

从玩具到智能家居:SOP8语音芯片开发全记录(附九齐汇编配置避坑指南)

本文以智能门铃项目为例,完整记录了SOP8 OTP语音芯片从选型到量产的全流程开发实践。重点剖析了九齐等台系芯片的汇编配置、语音处理优化及功耗控制等核心环节,并提供了详实的避坑指南,旨在帮助开发者高效、低成本地实现稳定可靠的语音提示功能。

k9l0m1的博客 501

Android底层驱动开发(十一)

[力瑜] WiFi开发流程、HTTP报文格式、TCP报文格式、UDP(User Datagram Protocol)报文、IP报文格式、总线与通信协议基本概念、GPIO、I2C、PCIe、UART、SPI、MIPI、USB、Linux内核无线子系统、WLAN/BT协议栈、WLAN与WiFi、WiFi数据包、设备安全接入过程、漫游、Wireless tools for Linux、UWB、Sub-GHz

Lzdnydppx的博客 4987

单片机入门实战:从51到STM32,项目驱动攻克GPIO、定时器与中断

单片机作为嵌入式系统的核心,是一种集成了处理器、存储器和外设接口的微型计算机芯片。其工作原理是通过编程控制内部寄存器,从而操作GPIO、定时器等硬件资源与外界交互。掌握单片机技术,对于实现智能硬件开发、物联网设备控制具有重要价值,广泛应用于智能家居、工业自动化、消费电子等领域。本文聚焦于单片机学习的核心实践路径,通过剖析GPIO(通用输入输出)、定时器与中断等关键概念,结合具体项目案例,如智能小车中的PWM电机控制与传感器集成,系统讲解如何从经典的51单片机平滑过渡到主流的STM32平台,并分享开发环境搭建

weixin_33826609的博客 374

【Realtek sdk3.6.0】 rtl8197h+rtl8832br+8367rb-vc how to build boot and fw.bin

若是其它情况,例如: RTL8367S , MDC on GPIOH0, MDIO on GPIOG7。即default setting中,带 nand 字样的,为nand flash config。2.3.2 结合HDK,检查外部switch 的 MDC MDIO Pin配置是否一致。生成的目标产物位于 ./boot/Output/boot and boot.bin。如果需要编译 spi nand flash的boot,则。如果需要编译 spi nor flash的boot,则。

Dowellmore的博客 3027

RTL8197F-VG(基于realtek 3.4.14b sdk) GPIO配置按键功能及反转极性

介绍 从内核代码中导出 ------------- 内核代码可以明确地管理那些已通过 gpio_request()申请的 GPIO 的导出: /* 导出 GPIO 到用户空间 */ int gpio_export(unsigned gpio, bool direction_may_change); /* gpio_export()的逆操作 */ void gpio_unexport(); /* 创建一个 sysfs 连接到已导出的 GPIO 节点 */ ...

wgl307293845的博客 1433

【RealTek sdk-3.4.14b】GPIO出现WARNING: at drivers/gpio/gpiolib.c:126 gpio_to_desc+0x50/0x58()问题分析及解决方案

从以上log可以看出,GPIO的最大编号也是GPIO 69,不会出现1001的情况,所以这是由于应用层初始化了不存在的GPIO导致的WARNING。查看drivers/gpio/gpiolib.c:126文件,对应函数。由此可以看到是由于传递的GPIO编号无效导致的信息。我们可以取消WARING的警告。

wgl307293845的博客 565

从煮面到芯片:用生活化视角理解STM32外部中断的优先级与嵌套

本文通过生活化类比讲解STM32外部中断(EXTI)和NVIC优先级机制,以煮面场景阐释中断嵌套与优先级管理。详细介绍STM32F407的EXTI配置步骤、常见陷阱及优化策略,帮助开发者高效处理多任务并发场景,提升嵌入式系统实时响应能力。

php55的博客 954

RK3568开发笔记-iSL1208 RTC时钟芯片调试记录

实时时钟的缩写是RTC(Real_Time Clock)。RTC 是集成电路,通常称为时钟芯片。实时时钟芯片是日常生活中应用最为广泛的消费类电子产品之一。目前实时时钟芯片大多采用精度较高的晶体振荡器作为时钟源,有些主板时钟芯片为了在主电源掉电时,还可以工作,一般添加额外电池供电,本文主要介绍在RK3568平台调试RTC时芯片ISL1208的开发记录以上就是今天要讲的内容,包含ISL1208时钟芯片驱动配置,模块数据读写等。

flypig has a dream! 2214

Stm32cubeMX生成配置工程的例子和过程记录

未经同意不得转载 stm32BubeMX配置用法 配置Stm32cubeMX例子 stm32cubeMX图形化配置用法 stm32配置demo stm32 usb hid例子 stm32 usb hid源码

Done Lin的专栏 1万+

避开命令行!在VMware vCenter 8.0图形化界面里搞定SSL证书续期全流程

本文详细介绍了在VMware vCenter 8.0图形化界面中完成SSL证书续期的全流程,包括计算机SSL证书、VMCA根证书和STS证书的管理。通过可视化操作,管理员无需使用命令行即可高效处理证书问题,确保vSphere环境的稳定运行。文章还提供了证书监控与预警配置的实用技巧,帮助用户提前规避证书过期风险。

weixin_27051161的博客 282

arduino esp8266_Arduino传感器教程 第22章ESP8266 控制 5V 继电器

ESP8266控制5V继电器目录一、NodeMCU二、工作原理本文将使用亚马逊 AlexaEcho 和 ESP8266 控制 5V 继电器。NodeMCUNodeMCU 是一个开源的 IoT 物联网硬件开发板,由于它支持 WIFI 功能且使用方法十分类似 Arduino 开发板,所以近些年获得了越来越多来自全世界的创客朋友们的青睐。NodeMCU 尺寸与 Arduino Nano 类似。...

weixin_39611722的博客 3455

STM32 HAL库驱动HC-SR04超声波测距实战:从GPIO配置到温度补偿优化

本文详细介绍了基于STM32 HAL库驱动HC-SR04超声波模块的完整实现过程,包括GPIO配置、定时器高精度时间捕获、温度补偿算法优化及代码集成调试。通过实战案例解析,帮助开发者掌握超声波测距技术,提升测量精度与稳定性,适用于物联网、机器人避障等应用场景。

grape的博客 997

软考中级信息系统监理师(第二版)-第21章基础设施工程监理

由于网络信息技术的飞速发展,变化日新月异,网络设计不但要保证目前网络传输容量的要求,也要考虑今后网络的发展,满足当前以及今后相当一段时间内的网络需求,便于向新技术的升级和衔接,同时又需要保护原有的投资。通用布缆系统工程中,承建单位的竣工文档主要包括以下内容:承建合同,招标文件,投标文件,设计方案,工程实施组织设计方案,工程施工报告,隐蔽工程记录,变更记录,自测报告,信息点分布图(表),园区、楼宇、水平配线表,楼层平面图及无线设备点位图,无线设备信息表,竣工图纸等。多排安装时,列间距不应小于1200mm。

2301_78583973的博客 1400

从门铃到芯片:用生活化场景拆解STM32中断机制的设计哲学

本文通过门铃、电话等生活场景类比,生动解析STM32中断机制的设计哲学。详细介绍了NVIC中断控制器如何智能调度多任务优先级,以及EXTI外部中断如何检测GPIO信号变化,帮助开发者理解中断配置流程与优化策略,实现高效的事件响应系统。

star的博客 389

HarmonyOS逆向降级实战:从鸿蒙2.0回退至EMUI 10.1的完整路径解析

本文详细解析了从HarmonyOS 2.0逆向降级至EMUI 10.1的完整操作流程,涵盖必备工具准备、数据备份策略及阶梯式降级步骤。针对华为手机用户遇到的兼容性问题,提供HiSuite和HiSuite Proxy工具的具体使用方法,并分享降级失败应急处理与系统优化技巧,帮助用户安全高效完成系统回退。

weixin_27741699的博客 1892

TIP 2024 | 跨类与跨域语义增强用于域泛化

域泛化方法旨在通过多样化的源域帮助开发一个在未知目标域上表现良好的通用模型。数据增强已被证明是增强计算机视觉中域泛化的有效方法。最近,基于语义级别的数据增强取得了显著成果。然而,这些方法主要集中在从类内和域内采样语义方向,限制了源域的多样性。为了解决这个问题,作者提出了一种新的方法,称为跨类与跨域语义增强(CDSA)。首先,作者引入了一种基于采样的方法CrossSmooth,从跨类中获取语义方向。然后,CrossVariance通过采样语义方向获取不同域的样式。

小白学视觉 211

使用定时器编写led闪烁

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 @TOC使用stm32cubemx编写led闪烁 前言 使用软件:keil5、stm32cubemx 硬件:野火f407开发板 硬件IO: 一、实现功能 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filt

qq_45672388的博客 4723

3.详解Labview串口通讯--从串口线连接到串口通讯保姆级教程

本文非常详细的介绍了使用Labview实现串口通讯,读完题主这篇文章,即使你是今天刚下载的Labview,也能熟练的连接并驱动串口执行,接下来和我一起学习下,记得关注并点赞不迷路

关注我,更多技术问题欢迎私聊~ 1万+

如何编程控制点亮一个LED灯?

我是一个只会点灯的菜鸟;相关文章1 前言本文基于ST的STM32F767ZI NUCLEO144开发板,结合CubeIDE的插件CubeMX配置生成代码点亮板载的LED,点亮可谓是单片机开...

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 2936

结合MATLAB/Simulink和多体动力学仿真软件UM(Universal Mechanism),建立高速列车轴箱轴承的动力学模型,并通过联合仿真分析其正常运行特性和典型故障模式

高速列车是现代交通运输的重要组成部分,其运行速度高、载客量大,对安全性和可靠性提出了极高的要求。轴箱轴承作为高速列车的关键部件之一,承担着传递载荷和支撑车轴的重要作用。然而,由于长期运行在高速、重载和复杂工况下,轴箱轴承容易出现疲劳磨损、润滑失效和裂纹等故障,从而影响列车的安全性。本项目旨在结合MATLAB/Simulink和多体动力学仿真软件UM(Universal Mechanism),建立高速列车轴箱轴承的动力学模型,并通过联合仿真分析其正常运行特性和典型故障模式。

xiaoheshang_123的博客 329

2025华为od面试手撕代码【求字符串表达式结果】

2025华为od面试手撕代码【求字符串表达式结果】

MISAYAONE的博客 1351

从零开始:用电路设计思维实现生活创意项目

电路设计是电子工程的基础,其核心在于通过电子元器件和信号处理来实现特定功能。其工作原理遵循基本的物理定律和逻辑关系,通过将复杂系统拆解为感知、控制、执行等模块进行协同工作。掌握电路设计思维的技术价值在于,它能将抽象的电子学原理转化为解决实际问题的能力,极大地降低了技术门槛。这种能力在智能家居、互动手工、数据化烹饪等应用场景中尤为突出,例如,通过传感器和微控制器,可以制作自动浇花系统、互动式贺卡或恒温发酵箱。本文以创客平台Instructables上的项目为例,具体展示了如何运用模块化设计和快速原型验证方法,

weixin_30444105的博客 458

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

懒人编程:用最小代码解决高频生活痛点

自动化不是追求技术炫技,而是应对日常熵增、降低秩序维护成本的基础能力。其核心原理在于识别‘高频微痛’场景——单次操作耗时短但重复率高,通过轻量级脚本(如Python、Bash、iOS快捷指令)实现低维护、高确定性的即时反馈。技术价值体现在可丢弃性设计(如SQLite单文件数据库、CLI优先交互)、人类行为模拟(网页自动化中的贝塞尔鼠标轨迹、断点续传)和跨平台中间格式(Markdown+YAML元数据)。典型应用场景包括家庭健康监测、微信作业汇总、智能文件归档与采购清单管理。本文聚焦生活自动化落地方法论,融合

clugcpne10995的博客 504

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

技术应用不是造火箭,而是修自行车:生活化Coding实战指南

技术应用本质上是将现实问题转化为可执行的数字解决方案的过程,其核心不在于编程语言或框架的复杂度,而在于对生活痛点的精准识别、工具杠杆的合理选择与即时反馈机制的设计。它植根于基础计算思维——问题拆解、最小实现、快速迭代,广泛适用于自动化办公、家庭管理、教育辅助、健康监护等高频生活场景。尤其适合非专业开发者,借助Python脚本、IFTTT、Power Automate、Notion API等低门槛工具,在5分钟内启动真实项目。本文聚焦‘生活操作系统’构建方法论,涵盖选题避坑、工具链组合、容错代码实践及可持续维

SailingAptech的专栏 498

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

从零开始的STM32生活——寄存器篇

STM32的一些寄存器知识

2402_85219475的博客 2013

智能家居DIY:从硬件选型到自动化配置的完整避坑指南

在物联网和智能家居领域,本地化控制系统因其高性价比和隐私安全性受到广泛关注。其核心原理在于通过开源硬件与固件,实现设备间的自主联动与数据处理,无需依赖云端服务器。这种技术方案的价值在于提供了稳定、可定制且响应迅速的家庭自动化体验,尤其适合对数据隐私和系统稳定性有较高要求的用户。在实际应用中,从ESP32主控板的选型与固件烧录,到无线传感器的配对与自动化规则编写,每个环节都直接影响系统的可靠性。例如,硬件选型需注意芯片型号与Flash容量的匹配,而固件烧录则涉及驱动安装与串口权限等底层操作。本文将围绕智能家居

weixin_30591551的博客 383
上一篇: nikon 协议
下一篇: bootloader的几点说明
fallune1
博客等级 码龄14年 2粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值