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

人工智能和网站开发网站建设人工费一年多少钱

人工智能和网站开发,网站建设人工费一年多少钱,短视频seo询盘获客系统,与网络公司洽谈做网站需要注意什么STM32 TIM详解 TIM介绍定时器类型基本定时器通用定时器高级定时器常用名词时序图预分频时序计数器时序图 定时器中断配置图定时器定时 代码调试 TIM介绍 定时器#xff08;Timer#xff09;是微控制器中的一个重要模块#xff0c;用于生成定时和延时信号#xff0c;以及处… STM32 TIM详解 TIM介绍定时器类型基本定时器通用定时器高级定时器常用名词时序图预分频时序计数器时序图 定时器中断配置图定时器定时 代码调试 TIM介绍 定时器Timer是微控制器中的一个重要模块用于生成定时和延时信号以及处理定时事件。在STM32系列微控制器中定时器通常用于以下几个方面 定时器功能 定时器可以生成精确的定时信号用于定时器中断、PWM脉冲宽度调制、计时等应用。它可以产生周期性的计数器溢出事件也可以产生比较匹配和捕获事件。 PWM生成 定时器可以用于产生PWM信号用于控制电机速度、调光、音频产生等应用。 计时功能 定时器可以用于测量时间间隔计算时间延迟或者用于定时测量外部事件的频率。 输入捕获和输出比较 定时器可以用于捕获外部事件的时间戳也可以用于与比较器进行比较并产生相应的事件。 在STM32系列微控制器中定时器模块非常灵活通常包括多个独立的定时器单元每个定时器单元都有自己的计数器、自动重载寄存器、预分频器、比较器等功能。此外定时器模块通常还支持多种工作模式、计数模式和时钟源选择可以满足各种不同的应用需求。 定时器可以对输入的时钟进行计数并在计数值达到设定值时触发中断16位计数器、预分频器、自动重装寄存器的时基单元在72MHz计数时-钟下可以实现最大59.65s的定时72MHZ/655351*(655351) 该公式后续会说明。不仅具备基本的定时中断功能而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型 定时器类型 基本定时器 为何PSC1PSC为0则不分频即72MHz为1 则分频率为36Mhz也即是72MHz/11 36MHz为2则分频为72Mhz/2124MHz …最大值分频值为为65535 则72MHz/655351 默认情况下定时器的输入时钟源CK_INT与定时器预分频器的输入时钟CK_PSC的时钟频率是相同的。 在STM32系列微控制器中默认情况下定时器的输入时钟源是微控制器的主时钟一般是内部时钟源比如HSI或者HSI16而定时器预分频器的输入时钟则是来自于定时器输入时钟源。因此如果没有对定时器的时钟源进行特别的配置那么默认情况下CK_INT和CK_PSC的时钟频率是相同的。 通用定时器 高级定时器 常用名词 CK_CNT_OV时器计数器溢出频率即定时器溢出的频率通常以 Hz赫兹为单位。 CK_CNT: 定时器计数器时钟频率即定时器计数器的输入时钟频率通常以 Hz 为单位。 ARR : 自动重载寄存器的值决定了定时器计数器溢出的周期。 CK_PSC: 定时器预分频器的输入时钟频率通常也是定时器的输入时钟频率在这里是72MHz,不需要我们处理。 PSC : 定时器预分频器的分频系数决定了定时器计数器时钟频率。 这些参数的英文全称分别是 - CK_CNT_OV: Timer Counter Overflow Frequency - CK_CNT: Timer Counter Clock Frequency - ARR: Auto-reload Register Value - CK_PSC: Timer Prescaler Clock Frequency - PSC: Prescaler Value 公式(重要 计算定时用): 输入时钟频率CK_CNT CK_PSC / (PSC 1) 计数器溢出频率CK_CNT_OV CK_CNT / (ARR 1) 将CK_CNT CK_PSC / (PSC 1)带入得到下式 CK_PSC / (PSC 1) / (ARR 1)时序图 预分频时序 计数器时序图 定时器中断配置图 需要一个一个配置打通所在的线路配置即可。 定时器定时 计时1s如何设置计时 1s1/1Hz 即 t1/f f(频率)计数器溢出频率; t(时间)1/f; 计时1s等于t1/1(CK_CNT_OV) 故而fCK_CNT_OV1 ;此时CK_PSC / (PSC 1) * (ARR 1)1 又因为 CK_PSC 是预分频器的输入时钟频率为72MHz故而(PSC 1) * (ARR 1)CK_PSC72000000凑PSC和ARR的值但不要超过65535使得式子成立即可。 这里PSC可以给7200-1 为什么-1因为(PSC 1) * (ARR 1)式子PSC1了为了凑整数好计算取PSC7200(注意不要超过65535)。ARR172000000/(PSC1)10000;如此 1ms ,1 us的配置也就通过计算可以计算出了。 故而配置时基单元就可以这样写 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;TIM_TimeBaseInitStructure.TIM_CounterModeTIM_CounterMode_Up;//配置为向上计数TIM_TimeBaseInitStructure.TIM_ClockDivisionTIM_CKD_DIV1;//这里随便配置个其中的参数TIM_TimeBaseInitStructure.TIM_Period10000;//Auto-Reload重装值 ARR 其值不得超过65536TIM_TimeBaseInitStructure.TIM_Prescaler7200;//预分频系数 根据上方公式计算 PSC其值不得超过65536TIM_TimeBaseInitStructure.TIM_RepetitionCounter0;//这个是高级定时器才会用到的通用随便给个直接给0TIM_TimeBaseInit(TIM2,TIM_TimeBaseInitStructure);代码调试 使用定时器每1s进入一次定时器中断函数完成Num操作并将它显示到OLED显示屏幕上。 Timer.c #include stm32f10x.h // Device header extern uint16_t Num; //Extern 声明变量在其他文件里在main.c定义了让编译器自己去找这里引用的是main.c定义过的变量 void Timer_Init(void) {RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);//TIM2通用计时器使能TIM_InternalClockConfig(TIM2);//配置为内部时钟模式TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;TIM_TimeBaseInitStructure.TIM_CounterModeTIM_CounterMode_Up;//配置为向上计数//72MHz 1sTIM_TimeBaseInitStructure.TIM_ClockDivisionTIM_CKD_DIV1;//这里随便配置个其中的参数TIM_TimeBaseInitStructure.TIM_Period10000;//Auto-Reload重装值 ARR 其值不得超过65536TIM_TimeBaseInitStructure.TIM_Prescaler7200;//预分频系数PSC其值不得超过65536TIM_TimeBaseInitStructure.TIM_RepetitionCounter0;//这个是高级定时器才会用到的通用随便给个直接给0TIM_TimeBaseInit(TIM2,TIM_TimeBaseInitStructure);TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);//使能定时器中断//下面这行程序后面还有中断使能开关中断标志置1了但后面的中断使能没开也进不了中断所以在使能开关前面清除就能达到目的TIM_ClearFlag( TIM2,TIM_FLAG_Update);//清除标志位因为TIM_TimeBaseInit函数里有这样一句话/* Generate an update event to reload the Prescaler and the Repetition countervalues immediately-立即 */ //就会导致刚初始化就进入中断导致下方Num不是从0开始而是从1开始。// TIMx-EGR TIM_PSCReloadMode_Immediate; 因此需要清除标志位。//NVIC配置NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//分组2NVIC_InitTypeDef NVIC_InitStructure;NVIC_InitStructure.NVIC_IRQChannelTIM2_IRQn;//配置为TIM2NVIC_InitStructure.NVIC_IRQChannelCmdENABLE;//使能NVICNVIC_InitStructure.NVIC_IRQChannelPreemptionPriority1;//抢占优先级NVIC_InitStructure.NVIC_IRQChannelSubPriority1;//响应优先级NVIC_Init( NVIC_InitStructure);//一定记得启动定时器TIM_Cmd(TIM2,ENABLE);}void TIM2_IRQHandler(void) {if(TIM_GetITStatus(TIM2,TIM_IT_Update)SET){Num;Num%100;//100重新计时TIM_ClearITPendingBit(TIM2,TIM_IT_Update);//清楚标志位} } main.c #include stm32f10x.h // Device header #include OLED.h #include Timer.h uint16_t Num;//定义Num,在Timer引用 int main() {OLED_Init();Timer_Init();while(1){OLED_ShowNum(1,1,Num,4);}} 现象每1s加一次。一直加到99再加清零 继续从0开始 个人总结复习使用如果对你也有帮助那可真是小舞的荣幸。
http://www.hkea.cn/news/14494298/

相关文章:

  • 网站运营外包公司客户推广渠道有哪些
  • 模板网站判定鲜花网站开发与设计
  • 广告投放效果评估seo做子网站
  • 做网站做地区好还是全国的好郑州网站建设技术精粹
  • 免费浏览的网站wordpress企业官网主题
  • 重庆网站设计制作网站手机wordpress写博客
  • 哪个网站可以做奖状做网站模板用什么框架
  • 大厂网站建设网站做多个语言有什么好处
  • 全国免费发布信息网站大全网站做维恩图
  • 网站推销话术wordpress个人博客绅士模板
  • 网站解析后怎么做钓鱼网页在线生成网站
  • 漳州网站建设网站运营站点和网页的关系
  • 东莞网站建设周期wordpress7.6
  • 张家口万全区建设网站中国遵义门户网站
  • 做信息类网站广州市官网网站建设
  • 易迈互联网站建设怎么样做电子杂志的网站
  • 网站分析表类似wordpress的应用
  • 地方门户网站盈利城乡与建设厅网站
  • 手机版网站版面设计怎么做网站建设以及网页设计需要会什么
  • 学校网站织梦源码1月初达到感染高峰
  • ppt模板做的好的网站有哪些北湖区网站建设公司
  • 深圳外贸建站网络推广价格wordpress数据库更改账号密码
  • 网站开发维护任职要求wordpress主题 tao
  • wordpress建哪些网站东莞网站建设如何做
  • 网站底部模板代码广东企业网站建设公司
  • 宁波网站设计相信荣胜网络网站建设需要照片吗
  • 昆山网站建设多少钱教育公司网站建设方案
  • 浙江省一建建设集团网站首页杭州pc网站开发公司有哪些
  • 美丽说网站案例分析广州网站制作电话
  • 做微商去哪个网站推广想开一个做网站的公司