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

网站显示iis7店铺设计图

网站显示iis7,店铺设计图,wordpress爆破工具,wordpress悬浮输入框文章目录 前言一、正交编码器是什么#xff1f;二、使用步骤2.1开启时钟2.2配置编码器引脚 TIM3 CH1(PA6) CH2 (PA7)上拉输入2.3.初始化编码器时基2.4 初始化编码器输入2.5 配置编码器接口2.6 开启定时器2.7获取编码器数据 三、参考程序四、测试结果4.1测试方法4.2串口输出结果… 文章目录 前言一、正交编码器是什么二、使用步骤2.1开启时钟2.2配置编码器引脚 TIM3 CH1(PA6) CH2 (PA7)上拉输入2.3.初始化编码器时基2.4 初始化编码器输入2.5 配置编码器接口2.6 开启定时器2.7获取编码器数据 三、参考程序四、测试结果4.1测试方法4.2串口输出结果 总结 前言 提示这里可以添加本文要记录的大概内容 项目需要 提示以下是本篇文章正文内容下面案例可供参考 一、正交编码器是什么 在这里插入图片描述 二、使用步骤 2.1开启时钟 /*开启时钟*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //开启TIM3的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //开启GPIOA的时钟2.2配置编码器引脚 TIM3 CH1(PA6) CH2 (PA7)上拉输入 /*GPIO初始化*/GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin GPIO_Pin_6 | GPIO_Pin_7;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA, GPIO_InitStructure); 2.3.初始化编码器时基 代码如下示例 /*时基单元初始化*/TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; //定义结构体变量TIM_TimeBaseInitStructure.TIM_ClockDivision TIM_CKD_DIV1; //时钟分频选择不分频此参数用于配置滤波器时钟不影响时基单元功能TIM_TimeBaseInitStructure.TIM_CounterMode TIM_CounterMode_Up; //计数器模式选择向上计数TIM_TimeBaseInitStructure.TIM_Period 65536 - 1; //计数周期即ARR的值TIM_TimeBaseInitStructure.TIM_Prescaler 1 - 1; //预分频器即PSC的值TIM_TimeBaseInitStructure.TIM_RepetitionCounter 0; //重复计数器高级定时器才会用到TIM_TimeBaseInit(TIM3, TIM_TimeBaseInitStructure); //将结构体变量交给TIM_TimeBaseInit配置TIM3的时基单元2.4 初始化编码器输入 代码如下示例 /*输入捕获初始化*/TIM_ICInitTypeDef TIM_ICInitStructure; //定义结构体变量TIM_ICStructInit(TIM_ICInitStructure); //结构体初始化若结构体没有完整赋值//则最好执行此函数给结构体所有成员都赋一个默认值//避免结构体初值不确定的问题TIM_ICInitStructure.TIM_Channel TIM_Channel_1; //选择配置定时器通道1TIM_ICInitStructure.TIM_ICFilter 0; //输入滤波器参数可以过滤信号抖动TIM_ICInit(TIM3, TIM_ICInitStructure); //将结构体变量交给TIM_ICInit配置TIM3的输入捕获通道TIM_ICInitStructure.TIM_Channel TIM_Channel_2; //选择配置定时器通道2TIM_ICInitStructure.TIM_ICFilter 0; //输入滤波器参数可以过滤信号抖动TIM_ICInit(TIM3, TIM_ICInitStructure); //将结构体变量交给TIM_ICInit配置TIM3的输入捕获通道2.5 配置编码器接口 /*编码器接口配置*/TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);//配置编码器模式以及两个输入通道是否反相//注意此时参数的Rising和Falling已经不代表上升沿和下降沿了而是代表是否反相//此函数必须在输入捕获初始化之后进行否则输入捕获的配置会覆盖此函数的部分配置2.6 开启定时器 /*TIM使能*/TIM_Cmd(TIM3, ENABLE); //使能TIM3定时器开始运行2.7获取编码器数据 /*** 函 数获取编码器的增量值* 参 数无* 返 回 值自上此调用此函数后编码器的增量值*/ int16_t Encoder_Get(void) {/*使用Temp变量作为中继目的是返回CNT后将其清零*/int16_t Temp;Temp TIM_GetCounter(TIM3);TIM_SetCounter(TIM3, 0);return Temp; }三、参考程序 #include stm32f10x.h #include stdio.h //全局GPIO_InitTypeDef GPIO_InitStruct;int x;/*** 函 数编码器初始化* 参 数无* 返 回 值无*/ void Encoder_Init(void) {/*开启时钟*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //开启TIM3的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //开启GPIOA的时钟/*GPIO初始化*/GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin GPIO_Pin_6 | GPIO_Pin_7;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA, GPIO_InitStructure); //将PA6和PA7引脚初始化为上拉输入/*时基单元初始化*/TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; //定义结构体变量TIM_TimeBaseInitStructure.TIM_ClockDivision TIM_CKD_DIV1; //时钟分频选择不分频此参数用于配置滤波器时钟不影响时基单元功能TIM_TimeBaseInitStructure.TIM_CounterMode TIM_CounterMode_Up; //计数器模式选择向上计数TIM_TimeBaseInitStructure.TIM_Period 65536 - 1; //计数周期即ARR的值TIM_TimeBaseInitStructure.TIM_Prescaler 1 - 1; //预分频器即PSC的值TIM_TimeBaseInitStructure.TIM_RepetitionCounter 0; //重复计数器高级定时器才会用到TIM_TimeBaseInit(TIM3, TIM_TimeBaseInitStructure); //将结构体变量交给TIM_TimeBaseInit配置TIM3的时基单元/*输入捕获初始化*/TIM_ICInitTypeDef TIM_ICInitStructure; //定义结构体变量TIM_ICStructInit(TIM_ICInitStructure); //结构体初始化若结构体没有完整赋值//则最好执行此函数给结构体所有成员都赋一个默认值//避免结构体初值不确定的问题TIM_ICInitStructure.TIM_Channel TIM_Channel_1; //选择配置定时器通道1TIM_ICInitStructure.TIM_ICFilter 0; //输入滤波器参数可以过滤信号抖动TIM_ICInit(TIM3, TIM_ICInitStructure); //将结构体变量交给TIM_ICInit配置TIM3的输入捕获通道TIM_ICInitStructure.TIM_Channel TIM_Channel_2; //选择配置定时器通道2TIM_ICInitStructure.TIM_ICFilter 0; //输入滤波器参数可以过滤信号抖动TIM_ICInit(TIM3, TIM_ICInitStructure); //将结构体变量交给TIM_ICInit配置TIM3的输入捕获通道/*编码器接口配置*/TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);//配置编码器模式以及两个输入通道是否反相//注意此时参数的Rising和Falling已经不代表上升沿和下降沿了而是代表是否反相//此函数必须在输入捕获初始化之后进行否则输入捕获的配置会覆盖此函数的部分配置/*TIM使能*/TIM_Cmd(TIM3, ENABLE); //使能TIM3定时器开始运行 }/*** 函 数获取编码器的增量值* 参 数无* 返 回 值自上此调用此函数后编码器的增量值*/ int16_t Encoder_Get(void) {/*使用Temp变量作为中继目的是返回CNT后将其清零*/int16_t Temp;Temp TIM_GetCounter(TIM3);TIM_SetCounter(TIM3, 0);return Temp; }void usart1_init() {//PA9 TX PA10 RX USART1GPIO_InitTypeDef GPIO_InitStruct;USART_InitTypeDef USART_InitStruct;NVIC_InitTypeDef NVIC_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1, ENABLE);//1.开时钟GPIO_InitStruct.GPIO_PinGPIO_Pin_9;//发送GPIO_InitStruct.GPIO_ModeGPIO_Mode_AF_PP;GPIO_InitStruct.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOA, GPIO_InitStruct);GPIO_InitStruct.GPIO_PinGPIO_Pin_10;//接收GPIO_InitStruct.GPIO_ModeGPIO_Mode_IN_FLOATING;GPIO_InitStruct.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOA, GPIO_InitStruct);USART_InitStruct.USART_BaudRate115200;USART_InitStruct.USART_HardwareFlowControlUSART_HardwareFlowControl_None;USART_InitStruct.USART_ModeUSART_Mode_Rx|USART_Mode_Tx;USART_InitStruct.USART_ParityUSART_Parity_No;USART_InitStruct.USART_StopBitsUSART_StopBits_1;USART_InitStruct.USART_WordLengthUSART_WordLength_8b;USART_Init(USART1, USART_InitStruct);//2.初始化串口 USART_Cmd(USART1, ENABLE);//3.是能串口USART_SendData(USART1, 4);while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)!1);USART_SendData(USART1, 1);while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)!1);USART_SendData(USART1, 0X41);while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)!1);USART_SendData(USART1, 41);while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)!1);USART_ITConfig(USART1,USART_IT_RXNE,ENABLE );// 4.接受完成中断NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 5.配置中断分组NVIC_InitStruct.NVIC_IRQChannelUSART1_IRQn;NVIC_InitStruct.NVIC_IRQChannelCmdENABLE;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority0;NVIC_InitStruct.NVIC_IRQChannelSubPriority0; NVIC_Init(NVIC_InitStruct);//配置中断优先级}int fputc(int ch,FILE *f) {USART_SendData(USART1, (u8)ch);while(!USART_GetFlagStatus(USART1, USART_FLAG_TXE));return ch; }void delay(u16 ms) {u16 i,j;for(i0;ims;i)for(j0;j1000;j); }int main() {//局部 // 库函数开启GPIO时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStruct.GPIO_Pin GPIO_Pin_0|GPIO_Pin_1;GPIO_InitStruct.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStruct.GPIO_Mode GPIO_Mode_Out_PP;GPIO_Init(GPIOA, GPIO_InitStruct); //xGPIO_InitStruct.GPIO_Pin GPIO_Pin_2|GPIO_Pin_3;GPIO_InitStruct.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStruct.GPIO_Mode GPIO_Mode_IPU; GPIO_Init(GPIOB, GPIO_InitStruct); //x usart1_init();Encoder_Init();u16 Speed0;GPIO_ResetBits(GPIOA, GPIO_Pin_0);GPIO_ResetBits(GPIOA, GPIO_Pin_1);while(1){GPIO_SetBits(GPIOA, GPIO_Pin_0);//GPIO_ResetBits(GPIOA, GPIO_Pin_0);u8 k0;for(k0;k20;k){GPIO_ResetBits(GPIOA, GPIO_Pin_0);GPIO_ResetBits(GPIOA, GPIO_Pin_0);delay(100);GPIO_ResetBits(GPIOA, GPIO_Pin_1);GPIO_ResetBits(GPIOA, GPIO_Pin_1);delay(100);GPIO_SetBits(GPIOA,GPIO_Pin_0); GPIO_SetBits(GPIOA,GPIO_Pin_0);delay(100);GPIO_SetBits(GPIOA,GPIO_Pin_1); GPIO_SetBits(GPIOA,GPIO_Pin_1); delay(100);}Speed Encoder_Get(); //每隔固定时间段读取一次编码器计数增量值即为速度值printf(测到的脉冲是%d \r\n,Speed);} } 四、测试结果 4.1测试方法 将正交编码编码的信号输入STM32 PA6 PA7引脚 因为没有编码器所以用PA0 和PA1模拟输出正交编码的PWM波形 如果有编码器器可以直接接入 PA6 PA7 4.2串口输出结果 结果分析 这里对输入的波形滤波 PA0 PA1 高低电平输出 循环20次 一次PA0循环输出1次上升沿1次下降沿 一次PA1循环输出1次上升沿1次下降沿 20*111180 所以计数器的次数是0 接线 总结 学习使人快乐 音乐使人愉悦 日积月累使人充实和自信
http://www.hkea.cn/news/14413414/

相关文章:

  • 大庆网站设计app商店下载
  • 宁夏政务网站建设标准网易企业邮箱怎么绑定
  • 做网站用什么语言高效安装wordpress教程
  • 腾讯网站建设推广龙岗网站制作效果
  • 设计师可以赚钱的网站网站制作教程:初学者
  • 网站和数据库上海技术做网站
  • 徐州手机网站制作公司哪家好重新wordpress
  • 自学网站推荐邯郸普通网站建设
  • 广州宝安建网站wordpress 顶部栏大小
  • 网站第一屏一般做多大海南代理注册公司费用
  • 网站开发的税率是多少网络运维工程师考试
  • 技术支持 东莞网站建设电脑回收网络股权设计培训课程
  • 网站开发的人怎么样做兼职比较好的网站
  • 网站开发大致多少钱滁州网站开发公司
  • 鹰潭建设网站公司建设游戏网站
  • 服务器网站建设情况免费net网站空间
  • 爱站网关键词密度企业微信app下载安装二维码
  • 做一个招聘信息的网站 用什么做网站的软件wordpress是国外服务器吗
  • 郑志平爱站网创始人动漫制作专业可以专升本考什么
  • 苏州网站建设凡科重庆公司建设网站
  • 专门做调查的网站亚马逊品牌网站怎么做
  • 做ppt音乐模板下载网站产品线上推广方案
  • 小程序网站建设制作集团网站下分网站 模板
  • 有源码帮忙搭建网站吗wordpress写博客流行吗
  • 优化网站推广高校网站建设要点
  • 郎溪网站建设h5页面怎么生成链接
  • 济南网站建设与优化青岛市房产信息网官网
  • 国际金融资讯做的好的网站福州网站建设
  • 设计商城的网站建设网站的视频
  • 联合网站设计彩票系统网站开发