zch952102 发表于 2013-1-17 18:33:35

stm32管脚输出波形抖动

  本人从MCS—51转到STM32,在学习中发现,STM32输出的波形会有抖动,我程序操作过程是:
#define c1_set GPIO_SetBits(GPIOA, GPIO_Pin_1);
#define c1_clr GPIO_ResetBits(GPIOA, GPIO_Pin_1);
其它程序省略
while(1)
{
       c1_set;
        delay_us(4);
        c1_clr;
        delay_us(4);
        c1_set;
        delay_us(4);
        c1_clr;
        delay_us(4);
        c1_set;
        delay_us(4);
        c1_clr;
        delay_us(4);
        c1_set;
        delay_us(4);
        c1_clr;
        delay_us(4);
}
/延时US级函数
void delay_us(int i)
{
  int j;
  while(i>0)
  {
<span style="color: rgb(34, 34, 34); font-family: sans-serif; font-size: 14px; line-height: 21px; background-color: rgb(238, 238, 238); ">  for(j=0;j

zykzyk-93033 发表于 2013-1-17 21:06:39

RE:stm32管脚输出波形抖动

正常的,你这种程序产生的不可能不抖动的。误差是存在的吗:D

zch952102 发表于 2013-1-18 09:19:25

RE:stm32管脚输出波形抖动

TO ZYKZYK
抖动   不是说精度,我没有要求程序能精确延时,我要求的是波形稳定,我的理解,每个相同的
C1_SET
DELAY_US(4)
C1_CLR
每次运行时间应该是相同的,那样输出的波形就应该是稳定的,至于稳定后的时间是多少,暂时未考虑。

发表于 2013-1-18 09:27:44

RE:stm32管脚输出波形抖动

while里面只写下面4句就可以了.也可能是程序影响的.
c1_set;
delay_us(4);
c1_clr;
delay_us(4);

zch952102 发表于 2013-1-18 11:13:01

RE:stm32管脚输出波形抖动

TO 安
果真如你如说,只要四句是对的,为什么?
我查看了DISASSEMBLY 的内容,多加几条如下命令,并不会导致编译内容不同。为何多加了波形会有抖动?
c1_set;
delay_us(4);
c1_clr;
delay_us(4);

发表于 2013-1-18 14:18:46

RE:stm32管脚输出波形抖动

应该是程序的干扰。还有就是你的间隔太小了。

zch952102 发表于 2013-1-18 17:15:49

回复:stm32管脚输出波形抖动

程序干扰?什么意思?
时间太短,为何会抖动?
大侠能否说清楚点
页: [1]
查看完整版本: stm32管脚输出波形抖动