最近用TM32F301 的读IO电平,发现速度很慢! while(1) { if(((GPIOB->IDR)&0x1)!=0) break; } GPIOA->BSRRL = 0x1; 当读到PB0为高电平时,退出,然后用PA0输出1,来示波器观察,然后,发现居然有240ns的时差!! 请教大家,这是为何? 按72M算,也有14ns一条指令的速度,但是这里居然240!为什么呢?搞了几天,一直没解决 如果想要最快的识别PB0为高电平的方法是?清大家指点! 谢谢! |
STM32F3 硬件I2C 驱动OLED 求助!!
STM32F303使用定时器触发双ADC常规同步采样模式
哪位大哥传下STM32F334 Nucleo的工程模板给我下
STM32F334 不能串口下载
关于STM32F334的HRTIM分辨率问题
STM32F303+LCD1602程序问题,不只为什么点不亮?
STM32F334的ADC使用问题
STM32F334 HRTIM形成移相全桥波形问题
有用过STM32F373VC的板子么 iic 例程不好使
STM32F3 ADC外部触发采样达不到7.2MSPS
看了 汇编大概4-5条,但是这样算来 不该240ns啊
都有配置输出为高速的,读就没有配置高速了
差不多了。可以尝试换换写法。
while (((GPIOB->IDR)&0x1)==0) ;
GPIOA->BSRRL = 0x1;
另外,这么快的速度,你的测量可靠不?
哦 因为测一个时间为 600ns的 ,现在误差在240ns,所以 太慢了, 开始用这个写法,也是这样,
设了,置为
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
还是这样, 发现2个问题, 读 判断,循环 的时间久了!
关于测试可靠性的问题,我准备多次测,取平均
要把相应的代码转化为汇编指令,然后再根据指令占用的机器周期数来算。
谢谢回复,问题是 我用KEIL 5 ,看 汇编指令,读IO就5条, 但是 为何会这么长时间,按72M 也就14ns一个指令
哦 是哦!我以为都是单指令执行周期。。。。