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

商业网站建设平台制作软件的软件

商业网站建设平台,制作软件的软件,商城平台开发公司,银行 网站开发 干什么理论 预分频寄存器(TIMx_PSC)#xff1a;由于时钟源为#xff1a;72MHz#xff0c;T 1/f 1/72MHz#xff0c;由于不好计算周期时间#xff0c;则需要分频#xff0c;若分72则T 1/1MHz 1us(1MHz 一百万秒) 计数方式#xff1a;向上(递增到某个数触发中断)、向下(递… 理论 预分频寄存器(TIMx_PSC)由于时钟源为72MHzT 1/f 1/72MHz由于不好计算周期时间则需要分频若分72则T 1/1MHz 1us(1MHz 一百万秒) 计数方式向上(递增到某个数触发中断)、向下(递减到某一个数触发中断)、中心计数(递增到某一个数触发中断再递减到某一个数触发中断) 比较值(参考链接) PWM1模式若计数值小于有效值则高电平计数值大于有效值则低电平可以控制比较值来调节占空比 PWM2模式与PWM1模式相反计数值小于有效值则低电平大于有效值则高电平 复用Pin脚本身除了支持普通GPIO功能之外还支持别的功能(使用别的功能就叫复用) 重映射Pin脚本身不支持这些功能配置重映射寄存器使其具备别的功能 定时器分类 型号STM32F103ZET6 基本定时器TIM6、TIM7 通用定时器TIM2~TIM5 高级定时器TIM1、TIM8 代码编写 定时器中断实验LED灯一秒闪烁一次、LED灯两秒闪烁一次、计算单片机运行时间、串口5秒返回单片机运行时间 PWM信号输出呼吸灯、电机(由慢到快)、舵机 输入捕获检测信号脉冲宽度(舵机脉冲宽度) LED灯、UART、定时器、PWM配置 LED灯配置请看链接 串口配置请看链接 配置定时器 72/7200 0.01T 1/f 1/0.01MHz 100us计数10000触发中断100us * 10000 1s1s 1000000us但单片机都是以0开始所以分频值以及计数值都 -1 配置定时器向上计数溢出中断NVIC(嵌套向量中断控制器) 定时器(PWM)控制LED灯配置 LED(PB5)引脚说明 所以配置定时器3通道二但配置完发现图中不符需手动修改 定时器(PWM)控制电机配置 配置PB4引脚PWM控制电机速度 定时器(PWM)控制舵机配置 舵机脉冲周期20ms 输入捕获定时器配置 配置定时器全局中断NVIC LED灯闪烁、串口输出运行时间 LED1每隔一秒电平翻转一次LED2每隔两秒电平翻转一次串口输出单片机运行时间 Cube IDE代码 main.c /* USER CODE BEGIN Includes */ #include stdio.h //27行 #include string.h //28行 /* USER CODE END Includes *//* USER CODE BEGIN 0 */ uint32_t G_Timer_Count 0; //59行 uint8_t UART_Count[200]; uint8_t UART_Flag 0; /* USER CODE END 0 *//* USER CODE BEGIN 2 */ HAL_TIM_Base_Start_IT(htim1); //开启定时器97行 /* USER CODE END 2 */if(UART_Flag) //104行 {sprintf(UART_Count,MCU run time is %lus,G_Timer_Count);HAL_UART_Transmit(huart1, UART_Count, strlen(UART_Count), 1000);UART_Flag 0; //打印一次后标志0等中断五次(5s)后 }/* USER CODE BEGIN 4 */ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) //定时器触发函数,157行 {if(htim htim1){HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);G_Timer_Count;if((G_Timer_Count % 5) 0)UART_Flag 1; //每隔五秒让标志1if((G_Timer_Count % 2) 0) //LED2每隔两秒翻转电平HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin);}} /* USER CODE END 4 */PWM信号LED呼吸灯、电机、舵机 理论参考链接 PWM信号控制LED产生一个呼吸灯效果以及对电机控制控制速度由慢到快 Cube IDE代码 main.c /* USER CODE BEGIN PV */ uint8_t PWM_Value 0,LED_PWM_Value 0,SG_PWM 5; //47行 /* USER CODE END PV *//* USER CODE BEGIN 2 */ //参数1定时器句柄(指向配置好的定时器结构体的指针)参数2定时器通道,93行 HAL_TIM_PWM_Start(htim3, TIM_CHANNEL_2); //开启定时器3通道2 PWM HAL_TIM_PWM_Start(htim3, TIM_CHANNEL_1); //开启定时器3通道1 PWM HAL_TIM_PWM_Start(htim4, TIM_CHANNEL_1); //开启定时器4通道1 PWM /* USER CODE END 2 *///103行 PWM_Value; PWM_Value PWM_Value % 200; if(PWM_Value 99)LED_PWM_Value 200 - PWM_Value; //大于99时从大到小(100,99...) elseLED_PWM_Value PWM_Value; HAL_Delay(25); //参数1定时器句柄参数2定时器通道,参数3比较值 __HAL_TIM_SET_COMPARE(htim3, TIM_CHANNEL_2, LED_PWM_Value); //设置LED比较值 __HAL_TIM_SET_COMPARE(htim3, TIM_CHANNEL_1, LED_PWM_Value); //设置电机比较值if(PWM_Value % 30 0) {//每0.1ms计数值1则0.5ms比较值模式1则占空比(高电平)0.5msSG_PWM 5;if(SG_PWM 25)SG_PWM 5;__HAL_TIM_SET_COMPARE(htim4, TIM_CHANNEL_1, SG_PWM); //设置舵机比较值 }输入捕获(IC) 捕获高电平持续时间 Cube IDE代码 捕获PWM高电平的时间 main.c /* USER CODE BEGIN PTD */ uint32_t ic_state0,period_count0,ic_count0,us_count; //32行 /* USER CODE END PTD *//* USER CODE BEGIN 2 */ HAL_TIM_Base_Start_IT(htim2); //开启普通定时器中断HAL_TIM_IC_Start_IT(htim2, TIM_CHANNEL_2); //开启捕获定时器中断printf(Please connect MCU51 P2.0,and let SG90 run to detect signal!\n); //串口输出捕获的时间(记得配置串口重定向) /* USER CODE END 2 */if(ic_state 2 ) //103行(while里) {/* 始终设置的是1us触发计数值加1* 一个周期大概65ms若大于65只有捕获中断函数不好使* 若period_count为1则代表过了一个中断周期时间(1*65535)us* 若没有到整个中断周期时间则剩下的为ic_count* 所以两个相加等于整个高电平时间*/us_count ic_count period_count * 0xFFFF;printf(High level duration: %ldus \n,us_count); //(float)(us_count)/1000.000ic_state 0; //再将中间键恢复0方便下次上升沿触发中断计时 }/* USER CODE BEGIN 4 */ void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) //输入捕获触发函数,161行 {if(TIM2 htim-Instance){if ( ic_state 0 ){__HAL_TIM_SET_COUNTER(htim,0); //将定时器从零开始计时__HAL_TIM_SET_CAPTUREPOLARITY(htim2, TIM_CHANNEL_2, TIM_INPUTCHANNELPOLARITY_FALLING); //设置成下降沿触发ic_state 1; //下次触发中断时(下降沿)则运行elseperiod_count 0;ic_count 0;}else{ic_count HAL_TIM_ReadCapturedValue(htim2,TIM_CHANNEL_2); //读取定时器计数值__HAL_TIM_SET_CAPTUREPOLARITY(htim2, TIM_CHANNEL_2, TIM_INPUTCHANNELPOLARITY_RISING); //设置成上降沿触发ic_state 2; //进入while里面的判断}} }void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) //普通定时器中断触发函数 {if(TIM2 htim-Instance){if(ic_state1){if(period_count0XFFFF) //一次周期大约65ms若进入这个需要(65*65535)ms{ic_state2;ic_count0XFFFF; //返回一个超大数显示错误}elseperiod_count;}} } /* USER CODE END 4 */
http://www.w-s-a.com/news/752985/

相关文章:

  • 本地网站开发wordpress页面关键词和描述
  • 微网站 合同软件开发培训方案
  • 怎么做淘宝客网站备案广告公司图片大全
  • 微信小程序展示网站建设多少钱做网站用什么软件初二
  • 瀑布流资源网站模板打码网站建设
  • wordpress 支付宝打赏网站视觉优化的意义
  • 建设网站需要几个文件夹永久免费内存大服务器
  • 可信赖的手机网站建设wordpress 显示摘要
  • 谁给我一个企业邮箱认证wordpress优化攻略
  • 建站软件免费版下载涿州做网站的
  • html5网站开发西安哪家网站建设公司好
  • 怎么做网站赚广州番禺区是富人区吗
  • 服装网站推广方案戴尔网站建设成功
  • 手机网站布局国外可以用什么网站做问卷
  • 手机建网站网店logo设计图片免费
  • 装修网站有哪些wordpress外网访问错误
  • 个人做电影网站服务器放国外安全吗建设通app
  • 西安公司网站开发快站官网平台
  • 北京网站设计公司哪个好网站开发属于哪个部门
  • 现在海外做的比较好一点的网站网站报价书
  • 做整站优化漳州建网站
  • jsp网站建设期末作业搜索引擎优化的定义是什么
  • 网站建设一级页面二级页面WordPress托管如果使用插件
  • 网站导航栏设计代码织梦做泰文网站
  • 网站建设的定位是什么南通网站定制费用
  • 怎么seo网站推广能免费观看所有电视剧的app
  • 大学网站建设做网站的用什么软件呢
  • 网站建设建设公司哪家好seo网站优化推广
  • 网站服务器组建网站案例上海
  • 盘锦949公社最新招聘优化大师免费版