关于stm32的一个函数问题 5C

最近用到了输入捕获,查来下资料发现输入捕获就是用timx的定时器之差来获取高电平的时间差。
那为什么不能用readpin函数呢,读取管脚的状态,不也可以达到相同的效果吗?
ps本人小白,请各位大神不惜赐教,谢谢

0

6个回答

调用gpio的函数执行需要占用cpu时间的,而定时器捕获则有硬件独立实现

3
0

读取IO的高低需要CPU参与,像边沿触发检测可以用硬件实现

0

如果读取IO的高低,比较占CPU

0

readpin函数执行比较慢的,用硬件内部的输入捕获精度高

0

调用gpio的函数执行需要占用cpu时间的,而定时器捕获则有硬件独立实现,而且 ,按照常规方式,定时器捕获是最常用也是最简单的一种方式。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
STM32小问题总结
STM32知识点总结n数字类型nu8 是 unsigned charnu16 是 unsigned shortnu32 是 unsigned intnu8 * 就表示指向unsigned char(无符号字符类型)的指针,属于指针类型nn
stm32函数中大数组问题
1. 简介rn        在以stm32构建系统的时候,当用户自己编写函数时,发现函数出现意想不到的结果,其中一项你需要注意的是看你的函数中有没有大的数组,或者说查看你函数中临时变量的总量是不是超过了系统设置的堆栈的最大值rn        这类问题编译器是不会给出错误的,相应的当出现程序不能给出想要的结果的时候,我们需要特别注意这类问题。对系统设置函数堆栈最大值的宏一般放在系统的启动文件中,
STM32 单位时间内输入方波个数统计函数
基于STM32可统计一分钟内输入方波个数,很精确的
关于我对STM32的一些理解
虽然说之前也有接触过有关于单片机的知识,但如此系统的接触单片机的理论对我来说还是史无前例的,更何况直接入手的便是STM32偏向于进阶的板子,所有带来的理论和操作对我来说不是一时半会就能透彻的,首先来说一下我对单片机对理解吧。rn 对于单片机,在没有培训之前,我仅仅认为是一个供应于程序员和开发者的一个高级模拟仿真,我想要了解单片机可能需要到特别深厚的计算机技术,用以进阶自己的知识系统,在上午的永鑫大
Ucos学习资料
Ucos学习资料。。关于STM32的移植问题。
STM32定时器 相关函数介绍
相关具体内容参考 stm32f4xx_hal_time.hrn几种模式函数的类型都差不多,包括基本类型(Base),输出比较(OC),输入捕获(IC),pwm(PWM),单脉冲(One_Pulse)和编码器(Encoder)。rnrn/****** xxx使用上述几种模式的英文替换即可*******/nHAL_TIM_xxx_InitnHAL_TIM_xxx_DeInitnnHAL_TIM_xx
STM32 关于GPIO的问题集锦、
STM32 关于GPIO的问题集锦,不错的参考资料
STM32 SD卡读取
关于STM32 的SD卡读取程序 里面有FAT32的移植,STM32启动函数
keil5编写stm32程序,while(1)里的函数体内延时时间过长,函数体未全部执行问题
f103,while(1)循环体内延时时间超过14s之后,后面的代码不执行直接跳出函数内部。
发现的STM32——SPI的问题
SPI点亮OLED屏n运行程序时发送几十次的数据总是会有看门狗的复位,后来发现程序每次都死在了while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET)这里,查阅资料后发现是SPI有FIFO端口,参考SPI/I2S调试总结,//用SPI1往OLED屏中写一个bituint8_t SPI1_WriteByte(uint8_t byte...
关于STM32的一些心得
本文介绍CMSIS标准和STM32的HAL库
STM32HAL库写pwm程序 L053
HAL库函数版本 STM32L053自写 pwm 周期- 0.01s HAL库函数版本 STM32L053自写 pwm 周期- 0.01s HAL库函数版本 STM32L053自写 pwm 周期- 0.01s HAL库函数版本 STM32L053自写 pwm 周期- 0.01s HAL库函数版本 STM32L053自写 pwm 周期- 0.01s HAL库函数版本 STM32L053自写 pwm 周期- 0.01s HAL库函数版本 STM32L053自写 pwm 周期- 0.01s HAL库函数版本 STM32L053自写 pwm 周期- 0.01s
记stm32中断处理函数的一次坑
今天在写蓝桥杯嵌入式的程序,后面写到串口部分时一直卡住了,具体情况是在RTC的秒中断函数中加了一个判断,当条件满足时用USART发送数据出去,由于是写了好多条程序再下载到板子上的,所以一直在找问题,浪费了很多时间。n这是有问题的原中断处理程序nvoid RTC_IRQHandler(void)n{n if (RTC_GetITStatus(RTC_IT_SEC) != RESET)n {n ...
关于利用USMART控制stm32单片机调试助手XCOM输入的函数
list,该命令用于打印所有 usmart 可调用函数。发送该命令后,串口将受到所有能被 usmart调用得到函数,如图1所示。图1id,该指令用于获取各个函数的入口地址。比如前面写的 test_fun 函数,就有一个函数参数,我们需要先通过 id 指令,获取 led_set 函数的 id(即入口地址),然后将这个 id 作为函数参数,传递给 test_fun,如图2所示。图2help(或者‘?’...
stm32汉字显示
汉字的二进制编码叫汉字国标码第一字节94个区  0-9区符号数字,16区后是汉字第二字节 94个位汉字机内码=国标码+8080H区位码(10)转换成16进制,然后加A0H,得到机内码...
关于STM32的HAL库中超时函数中的tick溢出后产生的问题的思考及求证
命题:n引用变量及函数:n__IO uint32_t uwTick;n__weak uint32_t HAL_GetTick(void)n{n return uwTick;n}n 源代码:nn__weak void HAL_Delay(__IO uint32_t Delay)n{n  uint32_t tickstart = 0;n  tickstart = HAL_GetTick()
STM32 fputc函数 重定向
int fputc( int ch, FILE *f )n{n        USART_SendData(USART1,(u8) ch );n        while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);n        return ch;n}nn需要包含头文件stdio.h,并且勾选Target中的use MicroLIB...
stm32点亮LED灯一(库函数版)
学习51单片机的第一个控制IO口的操作就是流水灯,stm32的学习我也是从一个流水灯开始,是stm32是32位机,里面有很多的寄存器,操作stm32单片机也可以使用寄存器操作,使用寄存器操作的好处就是程序的执行速度快,程序的体积小,但是,问题也有很多,比如不方便移植,stm32不同型号的寄存器是有差别的,同时开发的效率低,因为操作寄存器需要频繁地查芯片手册。nn权衡了一下,我选用库函数点亮LED。...
stm32USART使用(库函数)
1,定义GPIO端口、串口USART、中断NVIC初始化结构体。    2,打开相关外设时钟,串口1的时钟和引脚都在APB2总线上所以可以直接|操作,如下3,给GPIO结构体成员赋值,设置引脚功能,此处用的是USART1,Tx是PA9,Rx是PA10,我们要设置PA9为复用推挽输出,PA10为浮空输入。4,初始化GPIO端口之后我们就要配置中断分组和串口中断优先级,中断优先级分组只用设置一次。5,...
Python中关于函数的经典问题
#####函数的经典问题######nn nn nn1. 编制一个返回值为bool型的函数isPrimer(),用于判断参数是否为素数;nnndef isPrimer(num):n for i in range(2, num):n if num%i == 0:n return Falsen return Truennnnum = int(input(...
不使用sprintf函数使用共用体进行STM32单片机通讯解析
单片机之间的通讯难免遇到非字符型的数据这时同种单片机之间可以使用共用体进行信息的传输,这时只需要定义一个含有相同大小的一个字符数组还有一个需要的类型数据就行了 发送的时候按照字符型数据进行发送 解析的时候按照 需要的的数据类型进行解析 #include <iostream>nusing namespace std;typedef unionn{n int x;n char b[4]
STM32之SPI库函数介绍
首先SPI的一些基本介绍参照相关芯片的库函数或者使用手册,以下介绍SPI库函数的基本用法和参数的定义。rn1.SPI_DeInit函数的功能是将外设SPIx寄存器重设为默认值。输入参数SPIx可以是1和2,是用来选择SPI外设的。rn2.SPI_Init函数的功能是根据SPI_InitStruct中指定的参数初始化外设SPIx寄存器。SPI_InitDefType的结构体是定义在文件stm32f1
关于一个简单函数方程问题的深入探究
关于一个简单函数方程问题的证伪过程rn这个问题是一个高中同学问我的,来源是某张高数卷子的原题。但这个问题并不严谨,据说高数卷子默认为给出的函数都是任意阶可导的,而且所有函数以及其所有导数全部连续。问题本身是很简单的,看一眼就能得到答案。但是在给出这么强的条件下,我不得不开始思考,满足这样条件的函数存在吗?rn我“仔细思考”半个小时之后,写出比较冗长的步骤把这个问题给证伪了:这样的函数是不存在的。但是在...
4.STM32中对USART1_Config()函数的理解(自定义)
STM32中对USART1_Config()函数的理解
使用mbed进行STM32开发
关于:使用mbed进行STM32开发及STM32F0的时钟问题
stm32的中断接收字符串问题
https://blog.csdn.net/u012075442/article/details/50865644nn
STM32F107——OTG模块之USB设备之虚拟串口移植(三)
上一篇中已经实现基本的USB和USART2相互传输数据了,但是在实际应用中,我们并不需要库中提供的实现方案,所以本篇要实现的是将上篇移植完的工程进行精简。第一部分:去除有关评估板的内容;第二部分:去掉串口2部分。rn第一部分:rn1、USB部分中文件usbd_usr.c文件是有关屏幕的,因为文件中定义了一个关于显示屏的结构体会被其他地方调用,为了释放显示屏相关的资源,尝试把该文件中所有函数中的内容
STM32中关于HC-05的学习笔记
使用单片机与手机进行通信nn接线问题:nnHC-05的RX,TX与单片机的PA9,PA10对应相接。至于连接在ATK MODULE 端口中下RX,TX相连无法接受,有待与进一步研究nn待续...nn下面带上可行的程序:nnn#include &quot;stm32f10x.h&quot; n#include &quot;stm32f10x_rcc.h&quot; n#include &quot;stm32f10x_gpio.h&quot; ...
头文件被多次调用时的解决办法
单片机编程中有时会出现头文件多次调用,编译时导致结构体函数被重复定义的错误以STM3210X为例当头文件stm32f10x.h被多次调用时,会出现函数体被多次定义的错误,此时在头文件中添加#ifndef __STM32F10X_H#define __STM32F10X_H此处为头文件内容#endif   /* __STM32F10X_H */此方法可以很好的解决头文件被多次调用时出现的重复定义错误...
关于STM32的I2S通信飞利浦协议和MSB协议
关于STM32的I2S通信飞利浦协议和MSB协议nnnn最近公司一个项目要用到CODEC芯片来做语音的采集和输出,驱动是用的STM32F405的I2S接口。之前没有深入的了解过I2S的知识,只是大概的知道它是一种用于传输音频数据的总线。本来以为没什么难的,实际用下来其实也没感觉有有什么特别的。但是还是在使用的过程中把自己坑了一把。 nCODEC芯片型号是MAX9867,主要的应用场合是手机和助听器...
stm32 BOOTLOADER 导出函数给APP调用出现malloc无法分配内存的问题
实现IAP升级APP这个功能没有什么问题,但是想把APP中相对固定的函数移植到bootloader中,从而减少APP空间代码,减少升级时间。rnAPP通过调用bootloader导出的函数接口,实现相关功能的调用。rn代码举例rn在bootloader导出如下接口给APP使用rnint exp_forapp_A(void)rn{rnint k = 5;rnreturn k;rn}rnrnrnint
STM32及MT7681开发手册
STM32及MT7681开发手册是一个关于STM32及MT7681开发的相关手册,提供了STM32及MT7681开发的相关资料。
STM32学习笔记之测量某个函数运行时间
1. 设置Trace时的工作频率(就是当前的系统时钟,如stm32f103,f107为72MHz,f407为168M,f429为180M):rnrnrnrnrnrnrnrn2. 进入调试状态,在一条语句前设置断点执行到此,再执行到另外的语句处,下面的Sec就是执行时间rnrnrnrnrnrnrnrn得到adc_init()时间为: T2-T1 单位秒。rnrnrnrnrn3. 还有一种办法,更加精
stm32产生随机数
stm32使用rand()函数产生随机数,在OS编程中会设置srand()随机种子,其实随机种子就是某一时候的time()的值,因为这个值不同,所以每次的随机数都不同。 那么我们需要在stm32中模拟这样的一个随机种子 1——可以采用ADC采样值,必须是一个空脚(没接GND&VCC) 2——可以采用定时器的计数值上传部分代码 /*n 必须要每次刷新种子。每次的随机数才会不一样n
STM32 自定义延时函数
在stm32调试过程中加入一个延时,有两种方式:一种是纯计数方式,另一种是使用系统计数器的方式。n现使用系统计数器产生中断的方式实现,查阅STM32的编程手册可知,STM32有一个24bit的系统计时器,并有STK_CTRL、STK_LOAD、STK_VAL、STK_CALIB寄存器供读写配置。nnnnnnnnnnnnnnn而CORTEX_M3有提供了一些函数可以供
【stm32f0】stm32 中断号和中断处理函数建立关系
stm32的中断号根据不同内核和型号,ST公司给的官方库中对相应的中断号进行了设置,我们用到哪一个外设的且要用到相应的中断功能时,在stm32fXXX.h中定义对应的型号的中断号。若要调用相关的中断功能,在NVIC中配置相关的中断优先级和中断号。STM32会内部会根据配置的中断号在启动文件中寻找相应的中断函数的相应的入口函数例如在配置串口的中断接收打赢函数时,在NVIC的配置中配置串口1的中断函数中
关于STM32中断库函数写法
在STM32中中断的使用非常的频繁,其中EXTI 线 0~15:对应外部 IO 口的输入中断。rnSTM32F4 的 IO 口外部中断函数只有 7 个,分别为:rnEXPORT EXTI0_IRQHandlerrnEXPORT EXTI1_IRQHandlerrnEXPORT EXTI2_IRQHandlerrnEXPORT EXTI3_IRQHandlerrnEXPORT EXTI4_IRQHa
对stm32内存理解,查看以及面试题的一些总结(一)
基础知识储备nn1、keil中如何调用出map文件,以及map文件的作用nn我是拿正点原子的标准工程来使用分析。nn如何获得map文件,nnnn双击工程名即可得到map文件。nn2、map文件包含哪些东西nn1.Section CrossReferences:模块、段(入口)交叉引用;通俗一点就是函数之间互相调用的关系。nn2.Removing Unused inputsections from ...
STM32实验4:按键中断
端口配置#include "stm32f10x.h"n//PA13 PA15nvoid KEY_Init(void)n{n GPIO_InitTypeDef GPIO_InitStructure;n EXTI_InitTypeDef EXTI_InitStructure;n NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2Pe
ADS中关于sprintf()函数无法正确显示浮点数问题的解决办法
ADS中关于sprintf()函数无法正确显示浮点数问题的解决办法ADS中关于sprintf()函数无法正确显示浮点数问题的解决办法ADS中关于sprintf()函数无法正确显示浮点数问题的解决办法ADS中关于sprintf()函数无法正确显示浮点数问题的解决办法ADS中关于sprintf()函数无法正确显示浮点数问题的解决办法
文章热词 统计学稳健估计opencv函数 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 关于大数据培训 stm32视频游戏开发