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

iis7搭建网站公司介绍网站模板

iis7搭建网站,公司介绍网站模板,南京市建设工程交易中心网站,河池网站建设目录 一、Cube配置基本定时器 1.定时器CubeMX配置介绍 2.定时器中断控制LED 3.定时器常用函数 4.定时器从模式(Reset Mode) 5.定时器的从模式(Gated Mode) 6.定时器的编码器接口 一、Cube配置基本定时器 1.定时器CubeMX配置…

目录

一、Cube配置基本定时器

1.定时器CubeMX配置介绍

2.定时器中断控制LED

3.定时器常用函数

4.定时器从模式(Reset Mode)

5.定时器的从模式(Gated Mode)

6.定时器的编码器接口


一、Cube配置基本定时器

1.定时器CubeMX配置介绍

94875fd238974099974e95d0bcb76f9f.png

定时器属性配置:451f46cdfca64c9bb5288760e4f91e51.png

2.定时器中断控制LED

1、CubeMX配置(配置定时器频率为1Hz)

abdd9795f0e64f8ca4506d11f94d9a75.png

开启中断:

7b2abae2b3994ae1b34ef5b35e8a4778.png

继续选择PA9为LED工作引脚(推挽输出):

代码实现:

HAL_TIM_Base_Start_IT(&htim2);//开始定时器中断//中断回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_9);}

3.定时器常用函数

HAL_TIM_Base_Stop_IT(&htim2);//关闭定时器中断
HAL_TIM_Base_Start_IT(&htim2);//开始定时器中断//中断回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{}

4.定时器从模式(Reset Mode)

作用:

它的作用是TIF接收到信号时(上升沿或下降沿),会清空计数器。并且触发一次 触发器中断(由触发器中断标 志位控制) 。(重装载是的中断是 更新中断 )

CubeMX设置定时器相关参数:

1. 设置从模式为Reset模式

2. 使用的触发源是TI1FP1,但选择这个后右边芯片图中的PA6引脚会自动创建标签

3. 使用内部时钟

4. 设置PSC为36000-1,自动重装寄存器为2000-1.计数器从0增加到2000,溢出周期为1秒。

5. 设置从模式的Reset模式用上升沿

6. 滤波值设置15

7、打开中断

06daaacdd3c6458ba3ebb904f4bfc493.png

743bb459c9c24500b1043acf7814cfbf.png

下面我们用这个配置实现一个功能:

假如不按下按键,CNT从0自增到2000,后count只加1,并且从0计数。

但按键按下,CNT清零然后从零重新开始计数

main.c文件中重写中断函数:

uint32_t hhRetCount=0;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{if(htim==&htim3){if(__HAL_TIM_GET_FLAG(htim,TIM_FLAG_TRIGGER)==SET){//从模式Reset的中断__HAL_TIM_CLEAR_FLAG(htim,TIM_FLAG_TRIGGER);//需手动清空标志位}else{//自动重装的中断hhRetCount+=1;}}
}

main函数:

int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_I2C2_Init();MX_TIM3_Init();/* USER CODE BEGIN 2 */OLED_Init();//OLED初始化OLED_CLS();HAL_TIM_Base_Start_IT(&htim3);OLED_ShowStr(0,0,"CNT:",2);			//显示字符串OLED_ShowStr(0,5,"Conut:",2);			//显示字符串/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */uint32_t man = __HAL_TIM_GET_COUNTER(&htim3);//OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size2);//size2(16|12)OLED_ShowNum(40, 0, hhRetCount,5,16);OLED_ShowNum(50, 5, man,4,16);}}

效果:

37276e011c214a478b443927d5229c92.png

5.定时器的从模式(Gated Mode)

作用:

它的作用是TIF接收到信号时(高电平或低电平),会暂停计数器计数。会设置触发器中断标志位,但是会触发触发器中断

CubeMX设置定时器相关参数:

4a5c607e7c7844f2bcce47653d09e8db.png

其他的和上面一样,代码实现也一样!

现象:按下按键时,TIF会输入高电平。Gated模式检查到后会开始计数器计数。不按下时则会停止计数。(定时器在高电平模式下会正常计数,低电平触发后就会停止计数)

6.定时器的编码器接口

简单原理阐述:

Encoder Interface 编码器接口 编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度

编码器工作模式:

简单可以分为三个模式:b86a2e9eb8404b808e7be35d0ffc17a0.png要理解这些,我们先要知道怎么分辨编码器是正转和反转:

6decaa6e560a40b2adede08ea31761bd.jpeg

分辨完反向后,我们就可以根据A和B相来进行算数计次了,TI1模式就为遇到A相上下沿CNT自增,同理TI2模式就为遇到B相上下沿CNT自增,TI1和TI2模式就为遇到A相和B相上下沿CNT自增,无非就是精度问题而已,根据自己需求设定工作模式!

下面我们做两个小实验:①编码器当做时钟源 ②计数编码器速度

编码器硬件接线:

3ae7cc18901c4f56abd87e81d09058c3.png

CubeMX配置:

1. 打开编码器模式

2. 设置定时器的相关参数由于是检测速度,所以这里就不分频,尽可能让定时器快点。计数器设置 最大,防止输入信号频率太高溢出。

3. 设置计数模式,TI1计数和TI2计数

4. 设置信号不反转

a97c27ed01d34cbba3fe4316175e973f.png

代码实现:

main函数(这里我使用的OLED驱动,没有显示负数的函数,所以翻反转没办法显示负数出来):

int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */int16_t time = 100;int man =100;/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_I2C2_Init();MX_TIM3_Init();/* USER CODE BEGIN 2 */OLED_Init();//OLED初始化OLED_CLS();HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_ALL);//打开定时器编码器模式OLED_ShowStr(0,0,"CNT:",2);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */time = __HAL_TIM_GET_COUNTER(&htim3);//获取当前CNTOLED_ShowNum(70, 0, time, 5, 16);HAL_Delay(100);OLED_ShowNum(70, 5, man, 5, 16);}/* USER CODE END 3 */
}

计数编码器速度并显示:

原理就是1秒钟读取一次定时器的计数值(编码器的脉冲)并清空。得到的数字就是当前的速度,单 位是Plus/S

代码实现:

int16_t hhGetEncoderSpeedCountAndReset(){int16_t Tmp;Tmp=__HAL_TIM_GET_COUNTER(&htim3);//获取当前CNT__HAL_TIM_SET_COUNTER(&htim3,0);//清空CNTreturn Tmp;
}int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_TIM3_Init();HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_ALL);//打开定时器编码器模式OLED_Init();OLED_Clear();OLED_ShowString(2, 1, "CNT:");while (1){OLED_ShowSignedNum(2,5,hhGetEncoderSpeedCountAndReset(),5);HAL_Delay(1000);}
}

http://www.dtcms.com/wzjs/824456.html

相关文章:

  • 昆明建设路租房信息昆明租房网站html网页框架代码
  • 网站开发质量控制计划江门网站建设公司
  • 手机如何建立网站平台网站开发a ajax
  • vs2012建设空网站青岛网站建设开发外包
  • 个人网站免费的吗大气企业网站
  • 建设银行信用卡网站登录如何注册互联网服务平台
  • 毛绒玩具 东莞网站建设 技术支持佛山个性化网站建设
  • 广东智慧团建网站登录城市建设与管理网站
  • 专业网站建设教程珠海网站制作哪家好
  • 常州做网站那家快wordpress方法
  • 上海市建设注册管理网站百度账号登录入口
  • 怎么做网站自动采集数据关键词搜索引擎工具爱站
  • 萝岗定制型网站建设网站tdk标签
  • 外贸有哪些网站免费咨询矢量图
  • 常州做网站一般多少钱如何做线上网站的网站
  • 怎样自己做一个网站企业网站托管外包方案
  • 奉贤集团公司网站建设建设企业网站的公司
  • 网站建设基础教程自己怎么自学软件开发
  • 网站即将上线 模板怎么建网站自己做赌场
  • 站长工具seo综合查询 分析学校网站的作用和意义
  • 模版网站是什么意思移动营销
  • 外贸建站哪好村级网站建设
  • 追波设计网站域名网址查询
  • 重庆塔吊证查询网站网站建设公司资料大全
  • 腕表之家网站删掉wordpress主题
  • 网站推广的基本方式类豆瓣的模板 wordpress
  • 学校网站模板设计公司介绍视频
  • 哪个酒店网站做的好看的百度广告联盟官网入口
  • 跟有流量的网站做友情链接做儿童文学的网站
  • 一级a做爰片图片免费观看网站移动软件开发工程师