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

湖南做防水堵漏工程商网站广告推广话术

湖南做防水堵漏工程商网站,广告推广话术,wordpress如何压缩图片大小,构建网站无障碍建设1 编码器接口简介 Encoder Interface 编码器接口 编码器接口可接收增量#xff08;正交#xff09;编码器的信号#xff0c;根据编码器旋转产生的正交信号脉冲#xff0c;自动控制CNT自增或自减#xff0c;从而指示编码器的位置、旋转方向和旋转速度 接收正交信号#…1 编码器接口简介 Encoder Interface 编码器接口 编码器接口可接收增量正交编码器的信号根据编码器旋转产生的正交信号脉冲自动控制CNT自增或自减从而指示编码器的位置、旋转方向和旋转速度 接收正交信号自动执行CNT自增或者自减编码器接口相当于带有方向控制的外部时钟同时控制着CNT的计数时钟和计数方向。每隔一段时间去取一次CNT的值再把CNT清零每次取出来的值就表示编码器的速度。测频法 每个高级定时器和通用定时器都拥有1个编码器接口 两个输入引脚借用了输入捕获的通道1和通道2CH1和CH2 1.1 正交编码器 正交编码器一般可以测量位置或者带有方向的速度值 旋转编码器用来测量位置、速度或旋转方向的装置当其旋转轴旋转时其输出端可以输出与旋转速度和方向对应的方波信号读取方波信号的频率和相位信息即可得知旋转轴的速度和方向 类型机械触点式/霍尔传感器式/光栅式 方波频率代表速度。正转时A相提前B相90°反转时A相滞后B相90° 首先把A\相和B相的所有边沿作为计数器的计数时钟出现边沿信号时就计数器自增或者自减计数的方向由另一相的状态来确定。当出现某个边沿时判断另一相高低电平如果另一相的状态出现在上面这个表中那就是正转计数自增否则就是反转计数自减。这样就可以实现编码器接口的功能了。 编码器接口有两个输入端分别接到编码器的A相和B相所以编码器的输入引脚就是定时器的CH1和CH2引脚。编码器的输出部分相当于从模式的控制器了控制CNT的计数时钟和计数方向。计数器的自增和自减受编码器控制。 1.2 编码器接口基本结构 很清晰 1.3 工作模式 这里TI1FP1和TI2FP2接的就是AB相。计数和前面一样。 正转向上计数反转向下计数。 1.4 实例图 均不反向使用TI1和TI2都计数 很清晰。 TI1反向TI2不反向。极性的变化对计数的影响。 这里的极性选择就是高低电平的极性选择了。如果选择上升沿的参数就是信号直通过来高低电平极性不反转如果选择下降沿的参数就是信号通过非门高低电平反转。 很清晰。 手册 2  编码器接口测速 2.1 接线图 引脚定义 计划用TIM3的通道1和通道2 2.2 模块封装 按这个配置 库函数 // 定时器编码器接口配置 void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode,uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity); 版本一Encoder.c #include stm32f10x.h // Device header// 编码器接口初始化函数 void EnCoder_Init(void) {// 1开启时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);// 2配置GPIOGPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Mode GPIO_Mode_IPU; // 上拉输入模式GPIO_InitStruct.GPIO_Pin GPIO_Pin_6 | GPIO_Pin_7;GPIO_InitStruct.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA, GPIO_InitStruct);// 3配置时基单元TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;TIM_TimeBaseInitStruct.TIM_Prescaler 1 - 1; // PSC预分频器的值不分频TIM_TimeBaseInitStruct.TIM_Period 65536 - 1; // ARR自动重装器的值 TIM_TimeBaseInitStruct.TIM_CounterMode TIM_CounterMode_Up; // 向上计数没有用TIM_TimeBaseInitStruct.TIM_ClockDivision TIM_CKD_DIV1; // 不分频TIM_TimeBaseInitStruct.TIM_RepetitionCounter 0; // 重复计数器的值TIM_TimeBaseInit(TIM3, TIM_TimeBaseInitStruct);// 4配置输入捕获单元(只有极性和滤波器两个参数有用)TIM_ICInitTypeDef TIM_ICInitStruct;TIM_ICStructInit(TIM_ICInitStruct); // 结构体初始化TIM_ICInitStruct.TIM_Channel TIM_Channel_1; // 通道1TIM_ICInitStruct.TIM_ICFilter 0xF; // 滤波器 // TIM_ICInitStruct.TIM_ICPolarity TIM_ICPolarity_Rising; // 和后面重复 // TIM_ICInitStruct.TIM_ICSelection TIM_ICSelection_DirectTI; // 无作用 // TIM_ICInitStruct.TIM_ICPrescaler TIM_ICPSC_DIV1; // 无作用TIM_ICInit(TIM3, TIM_ICInitStruct);TIM_ICInitStruct.TIM_Channel TIM_Channel_2;TIM_ICInitStruct.TIM_ICFilter 0xF;// TIM_ICInitStruct.TIM_ICPolarity TIM_ICPolarity_Rising; // 和后面重复TIM_ICInit(TIM3, TIM_ICInitStruct);// 5配置编码器接口模式// TIM_ICPolarity_Rising这个通道不反向TIM_ICPolarity_Falling这个通道反向// 后两个参数相反就是方向相反TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);// 6启动定时器TIM_Cmd(TIM3, ENABLE); }// 获取CNT的值 int16_t Encoder_Get(void) {return TIM_GetCounter(TIM3); } 版本二Encoder.c #include stm32f10x.h // Device header// 编码器接口初始化函数 void EnCoder_Init(void) {// 1开启时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);// 2配置GPIOGPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Mode GPIO_Mode_IPU; // 上拉输入模式GPIO_InitStruct.GPIO_Pin GPIO_Pin_6 | GPIO_Pin_7;GPIO_InitStruct.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA, GPIO_InitStruct);// 3配置时基单元TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;TIM_TimeBaseInitStruct.TIM_Prescaler 1 - 1; // PSC预分频器的值不分频TIM_TimeBaseInitStruct.TIM_Period 65536 - 1; // ARR自动重装器的值 TIM_TimeBaseInitStruct.TIM_CounterMode TIM_CounterMode_Up; // 向上计数没有用TIM_TimeBaseInitStruct.TIM_ClockDivision TIM_CKD_DIV1; // 不分频TIM_TimeBaseInitStruct.TIM_RepetitionCounter 0; // 重复计数器的值TIM_TimeBaseInit(TIM3, TIM_TimeBaseInitStruct);// 4配置输入捕获单元(只有极性和滤波器两个参数有用)TIM_ICInitTypeDef TIM_ICInitStruct;TIM_ICStructInit(TIM_ICInitStruct); // 结构体初始化TIM_ICInitStruct.TIM_Channel TIM_Channel_1; // 通道1TIM_ICInitStruct.TIM_ICFilter 0xF; // 滤波器 // TIM_ICInitStruct.TIM_ICPolarity TIM_ICPolarity_Rising; // 和后面重复 // TIM_ICInitStruct.TIM_ICSelection TIM_ICSelection_DirectTI; // 无作用 // TIM_ICInitStruct.TIM_ICPrescaler TIM_ICPSC_DIV1; // 无作用TIM_ICInit(TIM3, TIM_ICInitStruct);TIM_ICInitStruct.TIM_Channel TIM_Channel_2;TIM_ICInitStruct.TIM_ICFilter 0xF;// TIM_ICInitStruct.TIM_ICPolarity TIM_ICPolarity_Rising; // 和后面重复TIM_ICInit(TIM3, TIM_ICInitStruct);// 5配置编码器接口模式// TIM_ICPolarity_Rising这个通道不反向TIM_ICPolarity_Falling这个通道反向// 后两个参数相反就是方向相反TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);// 6启动定时器TIM_Cmd(TIM3, ENABLE); }// 获取CNT的值 int16_t Encoder_Get(void) { // return TIM_GetCounter(TIM3);// 读取cnt把cnt清零的逻辑int16_t temp TIM_GetCounter(TIM3);TIM_SetCounter(TIM3, 0);return temp; } 2.3 主函数 版本一主函数 #include stm32f10x.h // Device header #include Delay.h #include OLED.h #include Timer.h #include EnCoder.hint main() {OLED_Init(); // 初始化OLEDEnCoder_Init(); // Timer_Init(); // 初始化定时器OLED_ShowString(1, 1, CNT:); // 显示字符串while (1){OLED_ShowNum(1, 5, Encoder_Get(), 5); // 显示CNT计数器} } 版本二主函数 #include stm32f10x.h // Device header #include Delay.h #include OLED.h #include Timer.h #include EnCoder.hint16_t speed;int main() {OLED_Init(); // 初始化OLEDEnCoder_Init();Timer_Init(); // 初始化定时器OLED_ShowString(1, 1, speed:); // 显示字符串while (1){OLED_ShowSignedNum(1, 7, speed, 5); // 显示CNT计数器} }// 中断函数 void TIM2_IRQHandler(void) {// 检测中断标志位确保是设置的中断源触发的这个函数if (TIM_GetITStatus(TIM2, TIM_IT_Update) SET){// 中断处理speed Encoder_Get();// 清除中断标志TIM_ClearITPendingBit(TIM2, TIM_IT_Update);} }
http://www.huolong8.cn/news/136711/

相关文章:

  • 怎么上不到建设银行网站广州网站建设app开发
  • 专业网站建设设计公司娱乐网站设计SEO
  • 个人网站如何做移动端三亚网红餐厅
  • 武威网站建设价格福州自适应网站建设
  • 内江网站建设免费网站地址申请
  • 东莞网站建设营销哪家好什么网站可以做问卷调查
  • 如何制作简单的网站手机平板购物网站的设计背景
  • 如何做网站 做论坛域名搭建网站
  • 有哪些做ppt用图片的网站有哪些百度网站抓取
  • 网站后缀 .cgi企业网站管理系统视频教程
  • 丽水企业网站建设莲塘网站建设
  • it网站开发百度首页广告
  • 精品课程网站设计报告12580黄页推广
  • 网站设计这个专业怎么样网络科技公司骗术
  • 品牌设计网站大全网站建设费摊多久
  • 网推公司怎么收费荥阳网站优化公司
  • 商会网站建设方案书教育网站的开发与建设论文
  • 中信建设有限责任公司电话号码手机网站优化怎么做
  • 梦扬科技 合肥网站建设杭州做网站软件
  • 网站站长英语电商网站开发主要技术问题
  • 地方o2o同城网站源码wordpress添加微信公众号
  • 古腾堡布局的网站东莞建设一个网站
  • 做博客网站赚钱吗站长之家素材网
  • 北仑网站网页建设wordpress4
  • 网站搭建费用明细二手房网站制作教程
  • 网站建设企业文化番号网站怎么做
  • my eclipse网站开发建设企业功能型网站
  • 可以在线制作网页的网站品牌网站查询
  • 建网站用什么工具印度域名注册网站
  • wordpress企业站主题下载浙江省通信管理局 网站备案