dzgzyyx 发表于 2024-7-18 21:09:06

stc32G,IO电平翻转问题

主频率为35m,程序直接写某个IO口=1再写=0,无延时,示波器测得高电平大概为20多ns转换为低,低电平得有大概800ns才翻转为高电平,反过来程序先写=0,无延时再写=1,翻转时间刚好反过来。这怎么回事。求大佬相助。

嵌入式之路 发表于 2024-7-18 21:48:04

贴代码 那个配置CPu周期的那个配置了吗 设置为0 W开头的我忘了

DebugLab 发表于 2024-7-18 22:16:47

死循环,执行完了再从头执行,就会跳转,跳转需要时间,具体干了啥看生成的汇编
要想时间一致,直接写Pxx=0; Pxx=1; Pxx=0; Pxx=1;……

jwd 发表于 2024-7-19 07:46:36

你可以放到定时器中断里面翻转看看

lezjin 发表于 2024-7-19 08:19:58

我前段时间测试这个矩阵键盘直接读取IO也有问题,后来就是延时了3-5个NOP。就解决了,
我个人的理解是,低电平要上拉到高电平,需要一定的时间,即使是配置为强上拉,使能快速翻转,都需要一定的时间

蜗牛 发表于 2024-7-19 09:56:59

IO口输出的最大频率和工作电压有关系,和IO口的配置也有关系

dzgzyyx 发表于 2024-7-19 11:04:12

本帖最后由 dzgzyyx 于 2024-7-19 14:52 编辑

找到原因了,32G系列有程序读取等待时钟寄存器,即WTST寄存器,默认是7,改0就好了。感谢大家的热情回复。

dzgzyyx 发表于 2024-7-19 14:54:51

嵌入式之路 发表于 2024-7-18 21:48
贴代码 那个配置CPu周期的那个配置了吗 设置为0 W开头的我忘了

是WTST寄存器没有配置的问题,感谢

嵌入式之路 发表于 2024-7-19 15:36:54

dzgzyyx 发表于 2024-7-19 14:54
是WTST寄存器没有配置的问题,感谢

哈哈,是吧我说的没错. 这个如果不配置的话那个延时的时间也是不准确的
页: [1]
查看完整版本: stc32G,IO电平翻转问题