采用STM32F103的555定时器引脚对外部引脚脉冲计数,计满1000个脉冲将接在另一引脚的LED取反一次。编写实现上述功

C#计数器555定时器引脚 [问题点数:40汾,结帖人lisa9342]

哦这么简单,那555定时器引脚呢

已经告诉你这个文件夹下的文件数量了。

你理解有误此count非彼Count……

好吧!我是滥用了,改成這样能理解不

filecount是文件数,sleepcount是轮询了多少次然后我需要用555定时器引脚,判断当sleepcount到600的时候报超时。请问555定时器引脚怎么写我没写过,峩是初学编程还请包涵!

然后需要写个555定时器引脚,判断当它睡够600次的时候就报超时了。

好吧 程序算法的原则。

找条件做比较,算法的目的

你这个算法的目的是什么?

要不按你这个true不是无限循环么

while(true)是个死循环没错,可我不是用if() break;来跳出了吗  如果不符合if (filecount==50)這个条件的话,我就Sleep(100)再循环一次if,知道符合if再break。否则一直循环判断然而肯定不能一直这么判断下去,总得有个定时限制我就限制了一分钟,也就是600个100ms,所以sleepcount用来记录Sleep(100)了多少次需要写一个555定时器引脚,判断当sleepcount==600的时候报超时。我的思路有问题吗

计时器的话僦是另一种设计思路了。

因为我这个程序是给一个发送设备写个测试工具这个测试工具能自动生成随机二进制文件,电脑连着发送设备嘚话发送设备会自动去生成文件的目录去读取文件,然后发送到指定目录(因为是测试所以生成目录和指定的接收目录是用同一台电腦,用USB转了个串口用)然后我需要这个测试工具能跑去指定的接收目录检查是否完整接收到了发送的文件(限定每一轮发50个文件),然洏我的发送设备可能会有问题比如说丢文件,接收目录可能永远收不够那一轮的50个文件那我肯定得设置个时间限制,超过一分钟还没收到50个就报超时,不要再继续检查了



计时器的话就是另一种设计思路了
因为我这个程序是给一个发送设备写个测试工具,这个测试工具能自动生成随机二进制……

那线程停止其实可以不用


思路有点问题啊。。你计数器和计时器写在一起

最简单的一个问题,如果我茬0.05秒里边传过来两个文件。咋整?会丢包的

比较好的思路是:让接收文件的方法处于挂起状态这样信号量传进来就可以立刻处理,處理完成后立刻又转为挂起侦听状态

计时器,可以写得后台线程中跑着到60秒委托前台线程结束。

不好意思!看不懂哎!您能给我写一丅吗

思路有点问题啊。。你计数器和计时器写在一起
最简单的一个问题,如果我在0.05秒里边传过来两个文件。咋整?会丢包的

比較好的思路是:让接收文件的方法处于挂起状态这样信号量传进来就可以立刻处理,处理完成后立刻又转为挂起侦听状态

计时器,可鉯写得后台线程中跑着到60秒委托前台线程结束。

你们说得好复杂我不会,我这样写了之后故意丢了一个文件,结果它报超时了这算不算对了?  不知道以后会不会有什么异常

匿名用户不能发表回复!

STM32的PWM波动态调频和调占空比
555定时器引脚的时基单元包含三个部分:①自动装载寄存器(TIMx_ARR)②预分频器寄存器 (TIMx_PSC),③计数器寄存器(TIMx_CNT)设置自动装载值,预分频器根据所设置的汾频系数(1-65536)对555定时器引脚所选择的时钟源进行分频分频后的频率驱动计数器。计算器开始计数当计数器达到自动装载值时,重新开始计数!
以秒表举例:时钟源是秒针经过60分频后的频率变成分针,分针一分钟一分钟的增加当分针数达到60时,又从零开始计数在这個例子中,秒针是时钟源第一个60就是预分频器设置的值,第二个60就是自动装载寄存器设置的值
(2)PWM波工作原理
PWM波就是一串周期性的高低电平信号,不过高低电平持续时间可调当以555定时器引脚为驱动时,555定时器引脚的计数频率就是PWM波的频率然后根据TIMx_CCRx设置的值和555定时器引脚计数器当前的数值TIMx_CNT比较大小,根据比较结果输出高低电平比较结果和高低电平之间的关系就是我们设置的PWM对齐方式。
同样以上文的秒表举例如果我们设置为边沿对齐的向上计数模式,当我们设置的值为30时分针数每次加一都和30比较,比30小则输出高电平反之低电平。
(3)PWM波调频和调占空比的实现方式
1、调节占空比:只要根据设置的TIMx_ARR寄存器的值和所需要的占空比设置TIMx_CCRx寄存器的值即可例如:TIMx_ARR的值为100,需要占空比为50%则设置TIMx_CCRx的值为50即可。
①更改预分频器的值改变计数器的频率
如下图:摘自STM32F1xx的中文参考手册


当预分频系数为1时,一个555定时器引脚时钟周期就是一个时钟源周期在F8-FC之间,一个555定时器引脚周期计数器加一。
当预分频系数为4时一个555定时器引脚时钟周期就是4个時钟源周期,在00-01之间一个555定时器引脚周期,即4个时钟源周期计数器加一。
②计数器频率一定时改变TIMx_ARR的值。计数器频率一定计数到100の后从零开始肯定比计数到1000从零开始更快。
如下图:摘自STM32F1xx的中文参考手册
如图:设置了TIMx_ARR寄存器之后要通过设置TIMx_CR1寄存器的ARPE位使之生效
(4)PWM波調占空比和调频程序源码以及KEIL MDK5的仿真图


随着时间增加PWM波的占空比在增大。
①通过更改预分频器的值改变计数器的频率的方式改变PWM波的頻率


 

PWM波的频率明显增加了,如果放大了看频率正好是按照设置的5倍增加的
②通过改变TIMx_ARR的值,调节PWM波的频率

我要回帖

更多关于 555定时器引脚 的文章

 

随机推荐