【GPIO配置】

GPIO的八种工作模式 四种输入模式 一、上拉输入/下拉输入 上拉电阻与下拉电阻分别与VDD和VSS相连,连接到TTL斯密特触发器把电压信息转换为0、1的数字信号存储在输入寄存器IDR。可通过设置配置寄存器CRL,CRH来控制这两个开关,于是就得到GPIO的上拉输入模式(GPIO_Mode_IPU)和下拉输入模式(GPIO_Mode_IPD) 若GPIO引脚配置为上拉输入模式,在默认状态下,读取得的GPIO引脚数据... 阅读详情

GPIO 四种输入模式

  1. 浮空输入 GPIO_Mode_IN_FLOATING
  2. 上拉输入 GPIO_Mode_IPU
  3. 下拉输入 GPIO_Mode_IPD
  4. 模拟输入 GPIO_Mode_AIN

GPIO四种输出模式

  1. 开漏输出 GPIO_MODE_OUTPUT_OD
  2. 推挽输出 GPIO_MODE_OUTPUT_PP
  3. 开漏复用输出 GPIO_MODE_AF_OD
  4. 推挽复用输出 GPIO_MODE_AF_PP

基于stm32F4xx的GPIO配置

  1. 时钟使能 (AHB1总线控制GPIO时钟)(F4系列特性)
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOx, ENABLE)
  2. 初始化结构体设置工作模式
    示例
	__HAL_RCC_GPIOF_CLK_ENABLE()
    GPIO_InitTypeDef gpio_init_struct;
  
    gpio_init_struct.Pin = LED0_GPIO_PIN;                   /* LED0ӽޅ */
    gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;            /* ΆάˤԶ */
    gpio_init_struct.Pull = GPIO_PULLUP;                    /* ʏ- */
    gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH;          /* ٟ̙ */
    HAL_GPIO_Init(LED0_GPIO_PORT, &gpio_init_struct);   

结构体定义:

typedef struct
{
  uint32_t Pin;       /*!< Specifies the GPIO pins to be configured.
                           This parameter can be any value of @ref GPIO_pins_define */

  uint32_t Mode;      /*!< Specifies the operating mode for the selected pins.
                           This parameter can be a value of @ref GPIO_mode_define */

  uint32_t Pull;      /*!< Specifies the Pull-up or Pull-Down activation for the selected pins.
                           This parameter can be a value of @ref GPIO_pull_define */

  uint32_t Speed;     /*!< Specifies the speed for the selected pins.
                           This parameter can be a value of @ref GPIO_speed_define */

  uint32_t Alternate;  /*!< Peripheral to be connected to the selected pins. 
                            This parameter can be a value of @ref GPIO_Alternate_function_selection */
}GPIO_InitTypeDef;

(1) 作为普通GPIO输入:
根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块。
(2) 作为普通GPIO输出:
根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复用功能模块。
(3) 作为普通模拟输入:
配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块。(A/D模拟输入)
(4) 作为内置外设的输入:
根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时使能该引脚对应的某个复用功能模块。
(5)作为内置外设的输出:
根据需要配置该引脚为复用推挽输出或复用开漏输出,同时使能该引脚对应的所有复用功能模块。
原文链接

1、普通推挽输出(GPIO_Mode_Out_PP):
使用场合: 一般用在0V和3.3V的场合。线路经过两个P_MOS 和N_MOS 管,负责上拉和下拉电流。
使用方法: 直接使用
输出电平: 推挽输出的低电平是0V,高电平是3.3V。
2、普通开漏输出(GPIO_Mode_Out_OD):
使用场合: 一般用在电平不匹配的场合,如需要输出5V的高电平。
使用方法: 就需要再外部接一个上拉电阻,电源为5V,把GPIO设置为开漏模式, 当输出高组态时,由上拉电阻和电源向外输出5V的电压。
输出电平: 在开漏输出模式时,如果输出为0,低电平,则使N_MOS 导通,使输 出接地。若控制输出为1(无法直接输出高电平),则既不输出高电平 也不输出低电平,为高组态。为正常使用,必须在外部接一个上拉电 阻。
特性: 它具“线与”特性,即很多个开漏模式 引脚连接到一起时,只有当所有 引脚都输出高阻态,才由上拉电阻提供高电平,此高电平的电压为外部 上拉电阻所接的电源的电压。若其中一个引脚为低电平,那线路就相当 于短路接地,使得整条线路都为低电平,0 伏。
3、复用推挽输出(GPIO_Mode_AF_PP): 用作串口的输出。
4、复用开漏输出(GPIO_Mode_AF_OD): 用在IIC。
所有的开漏输出都需要接上拉电阻。
原文链接

学习笔记:关于上拉输入、下拉输入、模拟输入、浮空输入、推挽输出、开漏输出、复用输出的区别 2、一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。拉高,然后可以读IO的值;3、开漏输出提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。由于浮空输入一般多用于外部按键输入,结合图上的输入部分电路,我理解为浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。 阅读详情

相关推荐

C C++最新GPIO的八种工作模式_gpio_mode_ipu,2024年最新顺利通过阿里C C++岗面试

可通过设置配置寄存器CRL,CRH来控制这两个开关,于是就得到GPIO的上拉输入模式(GPIO_Mode_IPU)和下拉输入模式(GPIO_Mode_IPD)浮空输入模式(GPIO_Mode_IN_FLOATING)输入阻抗较大,一般把这种模式用于标准的通信协议如I2C,USART。模式输入模式(GPIO_Mode_AIN)关闭了施密特触发器,不接上、下拉电阻,经由另一线路把电压信号传送到片上外设模块。若GPIO引脚配置为上拉输入模式,在默认状态下,读取得的GPIO引脚数据为1,高电平,下拉输入则相反。

2401_84976110的博客 1132

STM32的四种输出模式

STM32四种输出模式

Savage888777的博客 5234

配置GPIO

目录作者介绍查看MCU的GPIOGPIO的工作模式GPIO的输出频率GPIO初始化的几个参数GPIO初始化函数STM32CubeMX配置 作者介绍 刘懿宵,男,西安工程大学电子信息学院,2017级本科生。 专业:通信工程 电子邮件:liuyixiao@stu.xpu.edu.cn 查看MCU的GPIO 1、通过STM32CubeMX软件,我们可以很清晰的查找每个引脚所具备的功能。从而方便配置所需要的功能。 2、当你不明白该功能如何使用时,可以根据所给的功能名称查找技术文档。如下图找文档。 GPIO的

懿傕的博客 3339

【STM32】STM32F4 GPIO八种模式及工作原理详解

1 GPIO简介 GPIO,即通用I/O(输入/输出)端口,是STM32可控制的引脚。STM32芯片的GPIO引脚与外部设备连接起来,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 STM32F407有7组IO。分别为GPIOA~GPIOG,每组IO有16个IO口,共有112个IO口 通常称为PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。 并且F4...

Z小旋 10万+

配置学习总结高通平台GPIO

前言: 近期在BSP的工作学习中,Group Leader 给安排了一项任务,就是分别在Android项目代码里面的SBL1,LK,以及各自负责的驱动模块代码(我是Audio驱动)中间配置GPIO ,使用循环语句,控制GPIO的输出电压,从而通过示波器得到相应的电压变化方波。因为之前对这方面没有接触过,所以在一边查询资料,一边在前辈的指导下尝试,完成了任务的一大半,下面将是我这一周对于在高通平台

Joymine的专栏 1万+

Gpio配置读取

1:高通文档说明 通过直接读取gpio相应配置寄存器的值来分析对应gpio的配置情况;   高通提供如下方式:       上面说明的是寄存器每位代表的含义,是以msm8994为例的,对于我们的msm8909可以参考msm8909的芯片手册 《80-NP408-2X_MSM8909_MSM8209_MSM8208 HARDWARE REGISTER DESCRIPTION D

YOURSUPERHERO的专栏 4921

GPIO的配置方式

一.GPIO的输入输出模式 GPIO支持4种输入模式(浮空输入、上拉输入、下拉输入、模拟输入)和4种输出模式(开漏输出、开漏复用输出、推挽输出、推挽复用输出)。同时,GPIO还支持三种最大翻转速度(2MHz、10MHz、50MHz)。 GPIO_Mode_AIN 模拟输入 GPIO_Mode_IN_FLOATING 浮空输入 GPIO_Mode_IPD 下拉输入 GPIO_Mode_IPU 上拉输入 GPIO_Mode_Out_OD 开漏输出 GPIO_Mode_Out_PP 推挽

m0_60541919的博客 1万+

msm GPIO 配置

示例: gpio_tlmm_config(GPIO_CFG(PMIC_GPIO_INT, 5, GPIO_CFG_INPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE))

u013786805的专栏 3675

Linux内核配置gpio,linux配置GPIO的方式

linux配置GPIO的方式1.Bootloader阶段的控制\bootable\bootloader\lk\platform\msm8909\gpio.c/* configure rx gpio */gpio_tlmm_config(21,3, GPIO_INPUT, GPIO_NO_PULL,GPIO_8MA,GPIO_DISABLE);这里的21是指GPIO_21,3表示funct...

weixin_35786759的博客 1478

海思配置及控制GPIO

GPIO配置 在使用某个GPIO之前,需要确保你所使用的GPIO已经完成了正确的配置,具体的配置需要查看你所使用的海思芯片提供的管脚定义表格,例如下图: 该表格指定了需要配置某个GPIO对应的寄存器以及每一位的说明,表格也会给出默认的配置值,但是建议还是自己检查寄存器是否配置正确。 寄存器读写 海思提供了寄存器读写工具btools,默认在系统根目录的bin文件夹下。 cd /bin ./btoo...

weixin_43835637的博客 1909

STM32开发实战--解决STM32CubeMX生成代码时钟初始化卡死问题

本文详细分析了STM32CubeMX生成代码在时钟初始化阶段卡死的问题,提供了多种解决方案,包括简单修改和稳健的等待机制。通过深入探讨HAL库的时钟初始化陷阱及硬件层面的根本原因,帮助开发者快速定位并解决STM32开发中的常见问题。

weixin_26965807的博客 441

IMX6 dts 配置GPIO

IMX6 有很多系列版本,芯片的寄存器有一些是不一样的,我使用的CPU具体的partnumber 为 FREESCALE_MCIMX6U5EVM10AC 需求:配置 引脚 GPIO6_IO04 为输出高电平。 IMX6 GPIO 介绍,根据 TRM Chapter 2 Memory Maps 可知。IMX6 有7组GPIO,每组32个引脚。Base Address如下: GPIO7_BASE 0x020B4000 GPIO6_BASE 0x020B0000 GPIO5_BA...

只有自己觉到悟到的,才是自己的。 3577

Pixhawk变砖自救指南:从DFU模式到固件重刷全流程(附2.4.8实测)

本文详细介绍了Pixhawk飞控变砖后的自救方法,从DFU模式进入、固件重刷到高级恢复技巧全流程。特别针对国产版本boot0引脚未引出的特殊情况提供了解决方案,帮助用户通过QGC或Mission Planner地面站工具恢复飞控功能,适用于2.4.8等常见固件版本。

weixin_29168813的博客 338

GPIO系列(1)——MTK平台GPIO的配置,控制及驱动分析

MTK平台GPIO的配置,控制及驱动分析GPIO配置GPIO控制GPIO驱动分析 平台:MT8321,MT8665 Android:5.1 Kernel:3.10 GPIO配置 MTK平台的GPIO配置,通过“DrvGen”工具和“codegen.dws”文件实现,在“preloader”,“lk”,“kernel”里面,都有对应的“DrvGen”工具和“codegen.dws”文件。具体每个部分编译的时候使用的工具和文件的目录,可以参考每一个部分的编译脚本“drvgen.mk”: DRVGEN_TOOL

杨涂涂的博客 7899

XCP_Basic 移植步骤

XCP_Basic 移植步骤

ggzzc的博客 2316

C#实战:基于ONNX与SCRFD/ArcFace的高效人脸识别系统开发

本文详细介绍了如何在C#环境中,利用ONNX Runtime高效部署SCRFD人脸检测与ArcFace人脸识别模型,构建一个完整的、高性能的人脸识别系统。内容涵盖环境搭建、模型推理、人脸对齐、特征提取等核心模块,并提供了从Demo到生产系统的优化思路与实战代码,为.NET开发者提供了一套开箱即用的解决方案。

weixin_29061821的博客 488

STM32CubeMX——GPIO配置

本文将以STM32F103C8T6单片机为例讲解GPIO引脚的配置

weixin_45710877的博客 4990

商品评论中的实体情感分析

在之前的文章中我已经将商品评论中的评价实体,也就是特征(feature)给挖掘出来了,我看了一下,挖掘的效果还是不错的。原文链接:http://blog.youkuaiyun.com/chixujohnny/article/details/52794685 下面一步要做的是施加情感因子,也就是说,要将人们评论时候所连带的感情程度施加一下。这项任务的归类应该是情感分析技术。 目前该类问题的情感分析技

chixujohnny 7971

GPIO寄存器配置

stm32f10x系列单片机,直接配置GPIO寄存器来使IO口达到想要的配置

one_kun的博客 2531

实战指南:从零开始用YOLOv8训练VisDrone无人机检测模型

本文提供了一份详细的实战指南,手把手教你从零开始使用YOLOv8训练一个无人机检测模型。内容涵盖VisDrone数据集下载与格式转换、YAML配置文件编写、模型训练与评估,以及最终的推理部署,旨在帮助开发者快速掌握无人机视角下的目标检测技术。

salt的博客 683

DC-DC电源PCB布局实战:从EMI优化到热管理

本文深入探讨了DC-DC电源PCB布局的核心实战技巧。文章从分析电流环路入手,强调通过优化“黄金三角”布局以最小化环路面积,从而有效抑制EMI并提升效率。详细阐述了功率器件摆放、地线分割、敏感信号布线、电感下方铺铜策略以及热管理设计等关键步骤,为工程师提供了一套从理论到实践的完整布局指南。

z5a6b的博客 721

51GPIO口配置

STC配置GPIO口,通俗易懂,适合刚刚入门

m0_47702826的博客 3703

Android 自动亮度

/则需要从BrightnessConfigure类中读取两个数组源:config_autoBrightnessLevels和config_autoBrightnessDisplayValuesNits。) 或知道其在DisplayPowerController()构造的时候初始化的。曲线设置好了,就应该扔代码里跑起来,模型建起来了,这个过程是咋样的呢?//它将负责曲线的创建,自动背光值的计算等。通过搜索配置关键词(

Android 1485

GPIO配置介绍

4种输入模式: 输入浮空 输入上拉 输入下拉 模拟输入 4种输出模式: 开漏输出 开漏复用功能 推挽式输出 推挽式复用功能 typedef enum { GPIO_Mode_AIN = 0x0, //模拟输入 GPIO_Mode_IN_FLOATING = 0x04, //浮空输入 GPIO_Mode_IPD = 0x28, //下拉输入 GPIO_Mode_IPU = 0x48,

Serendipity的博客 4507

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

深度学习工具包 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")

gpio的配置和使用

本文档详细介绍了单片机GPIO接口的基本概念、配置方法和应用示例。GPIO作为单片机与外部设备通信的基础接口,具有输入、输出等多种工作模式,包括推挽输出、开漏输出和上下拉输入等。文档提供了STM32 HAL库的配置代码示例,涵盖LED控制和按键检测等典型应用,并强调了电气特性、引脚复用和抗干扰设计等注意事项。同时针对低功耗场景,给出了GPIO优化配置建议,包括引脚状态管理、时钟策略和外设处理等,通过合理配置可将待机电流降低至微安级。最后提供了低功耗GPIO检查清单,帮助开发者实现系统级优化。

TracyWdz的博客 2419

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: 【软件I2C】
下一篇: 【HAL_XXX_MspInit不需要用户自己调用的原因】
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值