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

好的网站推广什么网站可以做试卷

好的网站推广,什么网站可以做试卷,做网站要找什么软件,wordpress如何制作主题通用定时器输入捕获 需求:把测到的结果通过串口发送到电脑,检查测试结果。 在溢出之前,两次上升/下降沿记录时间。 345部分 滤波器:用来滤掉一些毛刺信息,信号质量好可以不滤波 边沿检测器:确定要捕获的是…

通用定时器输入捕获

需求:把测到的结果通过串口发送到电脑,检查测试结果。

在溢出之前,两次上升/下降沿记录时间。
在这里插入图片描述345部分
滤波器:用来滤掉一些毛刺信息,信号质量好可以不滤波
边沿检测器:确定要捕获的是上升沿还是下降沿,CCXP(输入极性和输出极性是不一样的)
TI1经过滤波和边沿得到信号TI1FP1/TI1FP2(可以多路选择),最终得到IC1信号,也就是直通
通道1和通道2,通道3和通道4可以交叉映射。
信号从预分频器出来,信号为IC1PS
1.会产生一个捕获比较事件(这里主要是捕获)
2.将到来的信号,将当前计数器的值保存下来。立即把计数器寄存器的值存到捕获寄存器中,在下次捕获事件产生之前,捕获寄存器的值不会发生变化。
3…如果开启了中断也会产生捕获比较中断

实验假设:计数器72分频,则计数器时钟频率为1MHZ,计数器累加一次时间为1us,自动重装载值设置为65535,假设测量的信号周期小于65535us即频率大于16Hz

如果测量频率超过1MHz,超过计数器的时钟频率,第二个上升沿到了之后,计数器还没有完成一次累加,则无法测量,可以考虑测试第一个上升沿和第N个上升沿的间隔时间,最后除以N即可。
如果测量的频率太低,也就是测量波第二次上升沿还没到来,计数器就已经溢出了,那么可以计算溢出的次数,然后来计算测量波的频率。

使用TIM5通道二的输出方波,直接,硬连接TIM4的通道1
TIM5_CH2——PA1 TIM4_CH1——PB6

CCMR_IC1F,用来配置滤波(此实验不滤波)
CCER_CC1P(0,上升沿,1,下降沿)
CCER_CCIE(使能CH1通道捕获使能,0,关闭,1,开启)
TIM_DIER_CC1IE(1,允许捕获比较1中断)
IC1PSC,预分频(00不作分频)
CC1S配置:
00:CC1通道呗配置为输出
01:CC1通道被配置为输入,IC1映射载TI1上,也就是直通
10:CC1通道被配置为输入,IC1映射载TI2上,也就是交叉映射
11:CC1通道被配置为输入,IC1映射载TRC上,

在tim4.h中编写

#ifndef __TIM4_H
#define __TIM4_H#include "stm32f10x.h"void TIM4_Init(void);// 将定时器的开关包装成函数
void TIM4_Start(void);
void TIM4_Stop(void);// 获取输入信号周期的函数
double TIM4_GetPWMCycle(void);
double TIM4_GetPWMFreq(void);#endif

在tim4.c中编写

/** @Author: wushengran* @Date: 2024-06-04 13:58:28* @Description: * * Copyright (c) 2024 by atguigu, All Rights Reserved. */
#include "tim4.h"void TIM4_Init(void)
{// 1. 开启时钟RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;RCC->APB1ENR |= RCC_APB1ENR_TIM4EN;// 2. GPIO工作模式,PB6:浮空输入 CNF-01,MODE-00GPIOB->CRL &= ~GPIO_CRL_MODE6;GPIOB->CRL &= ~GPIO_CRL_CNF6_1;GPIOB->CRL |= GPIO_CRL_CNF6_0;// 定时器配置// 3. 时基部分// 3.1 预分频值 71,得到1MHz/s,1usTIM4->PSC = 71;// 3.2 重装载值,65535,尽量在信号一个周期内不要产生溢出TIM4->ARR = 65535;// 3.3 计数方向TIM4->CR1 &= ~TIM_CR1_DIR;// 4. 输入通道部分// 4.1 TI1的输入选择,0TIM4->CR2 &= ~TIM_CR2_TI1S;// 4.2 输入滤波器TIM4->CCMR1 &= ~TIM_CCMR1_IC1F;// 4.3 配置极性:上升沿触发TIM4->CCER &= ~TIM_CCER_CC1P;// 4.4 选择通道1的输入映射为 TI1:CC1S - 01TIM4->CCMR1 &= ~TIM_CCMR1_CC1S_1;TIM4->CCMR1 |= TIM_CCMR1_CC1S_0;// 4.5 预分频器TIM4->CCMR1 &= ~TIM_CCMR1_IC1PSC;// 4.6 通道1输入捕获使能TIM4->CCER |= TIM_CCER_CC1E;// 4.7 开启捕获中断使能TIM4->DIER |= TIM_DIER_CC1IE;// 5. NVIC配置NVIC_SetPriorityGrouping(3);NVIC_SetPriority(TIM4_IRQn, 3);NVIC_EnableIRQ(TIM4_IRQn);
}// 将定时器的开关包装成函数
void TIM4_Start(void)
{TIM4->CR1 |= TIM_CR1_CEN;
}void TIM4_Stop(void)
{TIM4->CR1 &= ~TIM_CR1_CEN;
}// // 定义全局变量
// uint16_t cycle = 0;     // 保存信号的周期
// uint8_t count = 0;      // 保存当前上升沿到来的次数// // 在中断服务程序中,判断第几次上升沿到来,执行相应的处理
// void TIM4_IRQHandler(void)
// {
//     // 根据标志位,判断是否是CH1产生了捕获中断
//     if (TIM4->SR & TIM_SR_CC1IF)
//     {
//         // 清除中断标志位
//         TIM4->SR &= ~TIM_SR_CC1IF;//         // 上升沿个数加 1
//         count ++;//         // 判断是第几次上升沿
//         if (count == 1)
//         {
//             // 第一个上升沿到来,清零计数器
//             TIM4->CNT = 0;
//         }
//         else if (count == 2)
//         {
//             // 第二个上升沿到来,就读取CCR中的值,交给cycle
//             cycle = TIM4->CCR1;//             // 清零count,重新计数
//             count = 0;
//         }
//     }// }// // cycle单位为us,返回周期单位为ms
// double TIM4_GetPWMCycle(void)
// {
//     return cycle / 1000.0;
// }// double TIM4_GetPWMFreq(void)
// {
//     return 1000000.0 / cycle;
// }void TIM4_IRQHandler(void)
{//判断中断标志位if (TIM4->SR & TIM_SR_CC1IF){// 清除中断标志位TIM4->SR &= ~TIM_SR_CC1IF;// 直接清零计数器TIM4->CNT = 0;}}// cycle单位为us,返回周期单位为ms
double TIM4_GetPWMCycle(void)
{return TIM4->CCR1 / 1000.0;
}double TIM4_GetPWMFreq(void)
{return 1000000.0 / TIM4->CCR1;
}

在main.c中编写

/** @Author: wushengran* @Date: 2024-05-23 15:14:48* @Description:** Copyright (c) 2024 by atguigu, All Rights Reserved.*/
#include "usart.h"
#include "tim5.h"
#include "tim4.h"
#include "delay.h"int main(void)
{// 初始化USART_Init();TIM4_Init();TIM5_Init();printf("Hello, world!\n");// 开启定时器TIM5_Start();TIM4_Start();while (1){printf("T = %.2f ms, f = %.2f Hz\n", TIM4_GetPWMCycle(), TIM4_GetPWMFreq());Delay_ms(1000);}
}
http://www.dtcms.com/a/485723.html

相关文章:

  • 网页设计与制作参考文献聊城关键词优化推广
  • 网站配色设计wordpress写作工具
  • 做网站价格表贵州贵州省住房和城乡建设厅网站
  • 西安网站建设培训市场推广
  • 温州做网站的如何查询网站的空间大小
  • 南通的电商网站建设网站开发方倍工作室
  • 常州网站建设专业的公司做视频网站需要多大带宽
  • 给设计网站做图小程序注册步骤
  • 南京网站开发培训旅游网站的建设方案
  • 邵阳做网站哪个公司好福田官网
  • 沈阳门户网站建设wordpress 图片路径加密
  • html个人网站模版一个高校的校园网站建设费用
  • 健身器材网站模板营销型网站建设宣传语
  • 广东省住建厅官方网站鞍山信息港二手房
  • 网站建立具体步骤是最早做团购的网站
  • 四川润邦建设工程设计有限公司网站怀化市优化办
  • 企业网站建设软件需求分析深圳快速seo排名优化
  • 济宁做网站多少钱网站制作是不是要先用ps做
  • 做视频网站审核编辑有假么网站备案名可以更改吗
  • 百度快照官网登录寿光网站优化
  • 阜宁做网站哪家公司好怎么样免费创建网站
  • 山东住房和城乡建设部网站四川省工程造价总站官网
  • 建筑类专业做教育的网站专业网站建设网站推广
  • 制作微信网站模板下载不了成都网站建设收费
  • 柳州专业网站优化股市行情app
  • 长沙建个网站要多少钱拉丝机东莞网站建设
  • c 做网站需要什么知识三大电商平台
  • 做旅游网站的目的网站建设 猴王网络0成本
  • 做水暖的网站整站seo排名费用价格
  • 网上商城网站开发报告电商网页设计理念