当前位置:首页 > 单片机 > 单片机
[导读]终于轮到俺的小穆出场啦。有请能让太阳也为之暗淡的小穆闪亮登场~,鼓掌吧,欢呼吧!~~??We can burn brighter Than the sun ~~~ ??“谢谢~~~“ 唱的太棒啦,再来首~~ 再来首~~ ”谢谢大家,为大家表演《遮

终于轮到俺的小穆出场啦。有请能让太阳也为之暗淡的小穆闪亮登场~,鼓掌吧,欢呼吧!~~

??We can burn brighter Than the sun ~~~ ??

“谢谢~~~“ 唱的太棒啦,再来首~~ 再来首~~

”谢谢大家,为大家表演《遮天蔽日》魔术“

!@%&……¥%!@!@#……¥@#¥%@#¥!@!!%%……¥%……&¥(咒语)

... .... 场内一片漆黑,只看到3个省略号~~~

番茄或鸡蛋可以丢,硬东西可乐罐之类不要丢啊!划伤俺小穆可爱的脸,哼哼~和你们拼命!

好吧,不玩啦~!

对小穆来说,PWM输出那是小菜一碟。小穆对木?嗯嗯!哇咔咔~~~ 连代码都不用写就能实现的喔!。

可以直接通过TIM中的设置,实现PWM的输出!

“啥??PWM?PWM是什么东东??”

“怎么连这个都不知道!! 就是小穆唱歌的节拍呗。”

官方点就是“脉宽调制”,这可是个很有用的东西,很多东西都可以用这进行调节。如马达的转速,当然还能调节LED亮度。具体可以搜搜网上有非常详尽的说明。

拿出《小穆妹纸攻略手册》,找到TIM2-TIM5。

上面的是TIM2 到 TIM5 的原理图。手册上TIM1排在前面,感觉怪怪的。TIM1前面扣这一顶“高级”的帽子,那货对俺来说高级功能暂时不用,所以直接忽视→_→。TIM2的图比较简单。

小穆现在不在!偷偷告诉你,俺看了这图N遍啊~N遍~~,才有了大致了解。女人心海底针,想要了解真不容易。

看看,这个图要比时钟配置简单多了。按照上面俺把她划分成三块。

1、RCC输入 --- 为产生节拍提供基准

2、时基单元 --- 小穆的心跳节拍器,1/4拍是多长呢?

3、捕获比较输入输出通道 --- 跟随着节拍,唱出你的快乐吧。

看着图就能知道,俺的小穆有多强大。一个时钟能同时控制4路通道,就是4个IO口~(≧▽≦)/~啦啦啦。蓝色区域左手边是监听耳麦(输入捕获的),右手边是麦克风(比较输出的)。

“通道在那个IO引脚上?”

“打开MicroXplorer,设置TIM1-4 为PWM输出,所有通道对应IO一目了然。这太简单了,比看葵花宝典清晰不知道多少倍!”

按照刚才看妹纸使用手册,就大致能知道怎么处理过程。主要6步就能搞定。

PWM设置步骤

1、确定那个TIM输出PWM

2、使能总线 IO口和TIM

3、使能IO口,设置复用输出

4、使能TIM,设置输出比较模式

5、设置时基TIM寄存器

6、设置TIM产生通道的相关寄存器

按照上面的步骤还是很多,寄存器一大把。抓头发吧~~~ 大头了吧~~。俺有个超级法宝“IDE调试器”,这个东东可以居家旅行必备神器。PWM是直接通过配置获得,这种情况下。嘿嘿~~ 直接运行空程序,进入调试状态。小弟用KEIL,所以...

控程序当然也不是完全空,至少已经设置好晶振。这个是小穆妹纸标准行头(模板),拥抱小穆妹纸第一季的珍贵遗产。

整个代码设置基本的时钟单元,intmain(void)函数就只有让小穆无限劳碌命的一句话。

----------------------------------------

#defineSTM32F10X_MD#includevoidSystemInit(void){unsignedchardump=0;//使用外部8MHz晶振,启用PLL设置系统时钟为72HMz//USB可用//APB1低速总线36HMz//APB2高速总线72HMzRCC->CFGR=0x001D0402;RCC->CR=0x01010083;//闪存访问延迟,48MHz~72MHz=010。复位值:0x30FLASH->ACR=0x32;//确定外部高速晶振起效while(!(RCC->CR>>17));//确定PLL设置起效while(!(RCC->CR>>25));//确定PLL为系统时钟源while(dump!=0x02){dump=RCC->CFGR>>2;dump&=0x03;}}intmain(void){while(1);}

----------------------------------------

译开关 STM32F10X_MD

这个模板只适合 STM32F101~3 Flash 64~128K,具体参见参考手册(RM0008 V14 英文版)第2.2章。中文版没找到类似说明,应该是翻译版版本太旧。STM头文件中也有类似说明,可以直接删除此行,就能定位到。第一季里有详细说明。

启动调试后所有小穆妹纸的心思,那是一目了然。

如俺想打开TIM2通道2的PWM进行输出。按照下面红色圈圈的位置打开设置,想要的PWM的设置完成啦。可以看到那些寄存器的值,就是最终需要设置的结果哦。这竟然时如此之的简单。

想看看效果这容易,打开逻辑分析界面。就能看到有条线在上下跳动。

1、打开逻辑分析界面,

2、打开设置对话框

3、加入需要监视的引脚(如:PORTA.1)

4、设置按BIT(电平方式)显示。颜色改个热辣的红?

“我什么都没看到。”

“我就看到一坨颜色”

“难道就是传送中国王的新衣,只有聪明的人才能看到?"

“图片圈圈2位置,右边→_→看,有个Zoom,点点下面 缩小(In) 或 放大(Out)试试。应该就能看到。”

“还是看不到?"

看来要找找问题,监视的引脚不对?TIM使使能没?IO口使能没?总线使能没?重头到尾过一遍。

按照上面的设置,可以看到实际原理图大致对应寄存器位置。

“PWM输出多少频率还是不清楚?”

“第四和第五个圈圈,是设置实际频率的位置。”

每次从1数到100,到100后从头再数。这个就是“时基单元”干的活。至于想用啥鸟语数,这个俺不管啦,反正小穆听得懂就行。

数到多少让小穆脉动一下呢,如到50后脉动一下?设置“捕获比较寄存器”。那么数到50后,小穆用犀利的眼神盯着我,让给买奶茶。

“那设置0呢,或是俺调皮一下设成101,或999999,会发生什么情况?”

“好吧,我太牛了。试试会发生什么事情!”

数数还有很多方法,如倒着数,顺着数,双数数...,那种能让你心动,就可以用那种。想了解更多,参见葵花宝典!反正我只要顺着数就行了。

玩够了,俺准备直接把这些值使用盖世神功“啃秋四,啃秋五”全部抄袭下来。

----------------------------

intmain(void){unsignedintx,y;unsignedchariDir;unsignedintpwmwidth;//总线TIM2和A组引脚使能RCC->APB1ENR=0x00000001;RCC->APB2ENR=0x00000004;//PA1脚使用复用输出,打开TIM2第二通道GPIOA->CRL=0x444444A4;//设置自动重载计数器TIM2->ARR=900;//设置PWM//通道2PWM模式1//设置比较输出//设置比较脉冲宽度TIM2->CCMR1=0x6000;TIM2->CCER=0x0030;TIM2->CCR2=0x0000;//设置为比较输出,使能TIM2TIM2->CR2=0x0030;TIM2->CR1=0x0001;iDir=1;pwmwidth=1;while(1){//延迟//for(iDelay=0;iDelay<1;iDelay++)for(x=0;x<100;x++)for(y=0;y<1000;y++);if(iDir)pwmwidth++;elsepwmwidth--;if(pwmwidth>900)iDir=0;elseif(pwmwidth<1)iDir=1;if(pwmwidth==10)TIM2->CCR2=0;elseif(pwmwidth==300)TIM2->CCR2=300;elseif(pwmwidth==600)TIM2->CCR2=600;elseif(pwmwidth==900)TIM2->CCR2=900;}}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭