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

拟定一个物流网站建设方案有哪些招聘网站

拟定一个物流网站建设方案,有哪些招聘网站,做个人网站怎么赚钱,android应用开发基础一、输入捕获概念 输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量脉宽为例#xff0c;用一个简图来说明输入捕获的原理#xff0c;如图1所示#xff1a; 图1#xff1a;输入捕获脉宽测量原理图 STM32F4的输入捕获#xff0c;简单的说就是通过检测TIMx_CHx上的…一、输入捕获概念 输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量脉宽为例用一个简图来说明输入捕获的原理如图1所示 图1输入捕获脉宽测量原理图 STM32F4的输入捕获简单的说就是通过检测TIMx_CHx上的边沿信号在边沿信号发生跳变比如上升沿/下降沿的时候将当前定时器的值TIMx_CNT存放到对应的通道的捕获/比较寄存器TIMx_CCRx里面完成一次捕获。同时还可以配置捕获时是否触发中断/DMA等。 本文我将用TIM5_CH1来捕获高电平脉宽捕获原理如图1所示我就不多介绍了。 二、输入捕获功能及应用 捕获波形功能把模拟信号的边沿捕获得到波形时间。如图2所示 图2输入捕获波形图解 遥控器一般两种蓝牙遥控器红外遥控器有线遥控器 发送装置如图3所示 图3 接收装置如图4所示 图4 输入捕获可以捕获红外发送过来的波形通过每个波形的高低电平时间知道你是什么样的键值 遥控器每个按键都不一样、每个按键都有不同的键值键值会通过红外发送就使用红外接收进行输入捕获。 因为我的硬件设备上没有遥控器也没有接收。所以在我的硬件设备这里没办法实现。但是可以使用按键可以捕获按键的按下时间从而达到捕获的效果。 可以用于捕获按键高低电平持续时间捕获波形时间。 三、输入捕获模式 在输入捕获模式下当相应的ICx信号检测到跳变沿后将使用捕获/比较寄存器(TIMx_CCRx)来锁存计数器的值。发生捕获事件时会将相应的CCXIF标志TIMx_SR寄存器置1并可发送中断或DMA请求如果已使能。如果发生捕获事件时CCxIF标志已处于高位则会将重复捕获标志CCxOFTIMx_SR寄存器置1。可通过软件向CCxIF写入0来给CCxIF清零或读取存储在TIMx_CCRx寄存器中的已捕获数据。向CCxOF写入0后会将 其清零。具体内容如下图所示 四、输入捕获函数配置步骤 1、开启TIM5时钟配置PA0为复用功能AF2并开启下拉电阻 2、初始化TIM5,设置TIM5的ARR和PSC 3、设置TIM5的输入捕获参数开启输入捕获 4、使能捕获和更新中断设置TIM5的DIER寄存器 5、设置中断优先级编写中断服务函数 6、使能定时器设置TIM5的CR1寄存器。 五、TIM_ICInitTypeDef的定义及结构体中参数说明 typedef struct{ uint16_t TIM_Channel;//通道 uint16_t TIM_ICPolarity;//捕获极性 uint16_t TIM_ICSelection;//映射 uint16_t TIM_ICPrescaler;//分频系数 uint16_t TIM_ICFilter; //滤波器长度 } TIM_ICInitTypeDef; 六、代码示例 1、tim5.c //定时器5通道1输入捕获配置 //arr自动重装值(TIM2,TIM5是32位的!!)psc时钟预分频数TIM_ICInitTypeDef TIM5_ICInitStructure; void TIM5_CH1_Cap_Init(u32 arr,u16 psc){GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE); //TIM5时钟使能 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //使能PORTA时钟GPIO_InitStructure.GPIO_Pin GPIO_Pin_0; //GPIOA0 GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF;//复用功能GPIO_InitStructure.GPIO_Speed GPIO_Speed_100MHz;//速度100MHzGPIO_InitStructure.GPIO_OType GPIO_OType_PP; //推挽复用输出GPIO_InitStructure.GPIO_PuPd GPIO_PuPd_DOWN; //下拉GPIO_Init(GPIOA,GPIO_InitStructure); //初始化PA0GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_TIM5); //PA0复用位定时器5TIM_TimeBaseStructure.TIM_Prescaler psc; //定时器分频 TIM_TimeBaseStructure.TIM_CounterMode TIM_CounterMode_Up; //向上计数模式 TIM_TimeBaseStructure.TIM_Period arr; //自动重装载值TIM_TimeBaseStructure.TIM_ClockDivision TIM_CKD_DIV1;TIM_TimeBaseInit(TIM5,TIM_TimeBaseStructure);TIM5_ICInitStructure.TIM_Channel TIM_Channel_1; //选择输入端IC1映射到TI1上TIM5_ICInitStructure.TIM_ICPolarity TIM_ICPolarity_Rising;//上升沿捕获TIM5_ICInitStructure.TIM_ICSelection TIM_ICSelection_DirectTI; //映射到TI1上 TIM5_ICInitStructure.TIM_ICPrescaler TIM_ICPSC_DIV1;//配置输入分频,不分频 TIM5_ICInitStructure.TIM_ICFilter 0x00;//IC1F0000配置输入滤波器不滤波TIM_ICInit(TIM5, TIM5_ICInitStructure);//初始化TIM5输入捕获参数TIM_ITConfig(TIM5,TIM_IT_Update|TIM_IT_CC1,ENABLE);//允许更新和捕获中断TIM_Cmd(TIM5,ENABLE );//使能定时器5NVIC_InitStructure.NVIC_IRQChannel TIM5_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 2;//抢占优先级2 NVIC_InitStructure.NVIC_IRQChannelSubPriority 0;//响应优先级0 NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE;//IRQ通道使能NVIC_Init(NVIC_InitStructure);//根据指定的参数初始化VIC寄存器、 }/************************************************************************** //捕获状态//[7]:0,没有成功的捕获;1,成功捕获到一次. //[6]:0,还没捕获到低电平;1,已经捕获到低电平了. //[5:0]:捕获低电平后溢出的次数(对于32位定时器来说,1us计数器加1,溢出时间:4294秒) u8 TIM5CH1_CAPTURE_STA0;//输入捕获状态 u32TIM5CH1_CAPTURE_VAL;//输入捕获值(TIM2/TIM5是32位) **************************************************************************/ //定时器5中断服务程序 void TIM5_IRQHandler(void){//还未成功捕获if((TIM5CH1_CAPTURE_STA0X80)0){//溢出if(TIM_GetITStatus(TIM5, TIM_IT_Update) ! RESET){//已经捕获到高电平了if(TIM5CH1_CAPTURE_STA0X40){//高电平太长了if((TIM5CH1_CAPTURE_STA0X3F)0X3F){TIM5CH1_CAPTURE_STA | 0X80;//标记成功捕获了一次TIM5CH1_CAPTURE_VAL 0XFFFFFFFF;}else TIM5CH1_CAPTURE_STA;}}//捕获1发生捕获事件if(TIM_GetITStatus(TIM5, TIM_IT_CC1) ! RESET){//捕获到一个下降沿if(TIM5CH1_CAPTURE_STA0X40){TIM5CH1_CAPTURE_STA | 0X80;//标记成功捕获到一次高电平脉宽 TIM5CH1_CAPTURE_VAL TIM_GetCapture1(TIM5);//获取当前的捕获值.TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising); //设置上升沿捕获}//还未开始,第一次捕获上升沿else {TIM5CH1_CAPTURE_STA 0;//清空TIM5CH1_CAPTURE_VAL0;TIM5CH1_CAPTURE_STA | 0X40;//标记捕获到了上升沿TIM_Cmd(TIM5,ENABLE );//使能定时器5TIM_SetCounter(TIM5,0);//计数器清空TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling);//设置下降沿捕获 TIM_Cmd(TIM5,ENABLE );//使能定时器5}}}TIM_ClearITPendingBit(TIM5, TIM_IT_CC1|TIM_IT_Update); //清除中断标志位 } 2、tim5.h #ifndef _TIM5_H_ #define _TIM5_H_#include stm32f4xx.h #include stdio.hvoid TIM5_CH1_Cap_Init(u32 arr,u16 psc);#endif3、main.c extern u8 TIM5CH1_CAPTURE_STA; //输入捕获状态 extern u32TIM5CH1_CAPTURE_VAL;//输入捕获值 int main(void){long long temp 0;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2SysTick_Init(168); //初始化延时函数uart_init(115200);//初始化串口波特率为115200TIM14_PWM_Init(500-1,84-1);//84M/841Mhz的计数频率计数到500,频率为1M/5002Khz TIM5_CH1_Cap_Init(0XFFFFFFFF,84-1);//以84M/841Mhz的频率计数while(1){Delay_ms(10);TIM_SetCompare1(TIM14,TIM_GetCapture1(TIM14)1);if(TIM_GetCapture1(TIM14)300)TIM_SetCompare1(TIM14,0);//成功捕获到了一次高电平if(TIM5CH1_CAPTURE_STA0X80){temp TIM5CH1_CAPTURE_STA0X3F;temp * 0XFFFFFFFF;//溢出时间总和temp TIM5CH1_CAPTURE_VAL; //得到总的高电平时间printf(HIGH:%lld us\r\n,temp);//打印总的高点平时间TIM5CH1_CAPTURE_STA 0;//开启下一次捕获}} } 七、下载验证结果 在完成代码编写之后将编译好的文件下载到我们的硬件开发板上此时可以看到DS0的状态由暗到亮的循环。即可说明程序已正常在执行了然后再打开串口调试助手选择对应的串口按下KEY_UP按键可以看到串口打印的高电平持续时间如下图所示 从上图中可看出其中有2次高电平在50us以内的这种就是按键按下时发生的抖动。这就是为什么我们按键输入的时候一般都需要做防抖处理防止类似的情况干扰正常输入。大家还可以用杜邦线连接PA0和PF9具体的内容可参考STM32F4开发指南—库函数版本中第十四章PWM输出实验。 八、总结 输入捕获是一种用于测量和捕获外部信号的功能常用于测量信号的频率、周期、占空比等参数。通过配置定时器和GPIO引脚并设置输入捕获通道的工作模式和触发条件来实现信号的捕获和测量。通过中断处理程序读取输入捕获寄存器的值可以获取外部信号的相关参数。学习了输入捕获需要了解定时器和GPIO引脚的配置掌握了输入捕获通道的设置和中断处理方法并参考相关的芯片手册和开发环境文档进行实际应用。 九、其他说明 《STM32F4开发指南—库函数版本》可到我的资源进行下载。 TIM14_PWM_Init 函数代码编写可参考9.PWM简单介绍章程。 注意本人所写文章内容均用于记录自己在学习嵌入式的成长过程
http://www.hkea.cn/news/14323014/

相关文章:

  • 买高端品牌网站建设郑州做招商的网站
  • 海外贸易在什么网站做茶叶网站程序
  • 推荐家居网站建设关键词优化的策略
  • 类做秋霞的网站新浪网页版
  • 建设网站广州市怎么建设一个公司网站
  • 属于seo网站优化沧州网站建设多少钱
  • 大连营商建设局网站不错的网站建设公司
  • 义乌网站建设设网页中的交互设计案例
  • 做酒类网站购物类网站开发
  • 万江建设网站wordpress安装好后怎么使用
  • 网站网站开发不存储数据犯法吗开封市住房和城乡建设网站
  • 网站设计主题中文知道网站域名怎么联系
  • 我国旅游网站的建设湖南正规关键词优化
  • 苏州晶体公司网站建设校园网网络规划与设计方案
  • wordpress做文字站网站设计的主要步骤
  • 淮安做网站杨凯wordpress 404页面模板
  • 网站美工建设软件下载如何把php做的网站做成app
  • 公司核准名称网站东莞网站建设方案
  • yyf做的搞笑视频网站贵阳网站建设1685
  • 网站制作时wordpress可以做论坛
  • 广州天河酒店网站建设专业画册设计公司
  • 做网站的就业前景现在哪里大搞建设
  • 邳州做网站的公司国内免费发布产品的平台
  • 网站集约化建设背景汽车零件销售网站开发
  • 建设金融网站哪家好oa系统有哪些
  • 赤峰网站建设red帮助网站源码
  • 娱乐网站开发spspwkwin7优化教程
  • 品牌授权网站深圳网站建设报价
  • 炫酷的企业网站建设银行如何设置网站查询密码
  • 沈阳网站制作定制策划怎么做自己的网站赚钱