如何提高stm32IO口输出的速度?

2019-07-21 00:36发布

#include "led.h"
#include "delay.h"
#include "sys.h"

int main(void)
{       
        delay_init();                     //Ñóê±oˉêy3õê¼»ˉ          
        LED_Init();                          //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú
        while(1)
        {
                LED0=0;
                LED1=1;
                delay_ms(300);         //Ñóê±300ms
                LED0=1;
                LED1=0;
                delay_ms(300);        //Ñóê±300ms
        }
}
这个程序的LED0=0;LED0=1;这两句是把PA8口拉低和拉高,但是耗时比较长,把IO口置低或者置高,有速度更加快的写法吗,是不是直接操作寄存器会更加省时间

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
IoTCatcher
1楼-- · 2019-07-21 05:55
 精彩回答 2  元偷偷看……
huangjunxing
2楼-- · 2019-07-21 09:41
IoTCatcher 发表于 2019-5-30 09:40
一般来说, 这个速度对于控制LED应该是影响不大.你可以初始化GPIO的时候, 吧GPIO的速度设为最快等级.

我用的是stm32F103rct6,IO口速度已经设置成50M了
用这种方法会不会快点GPIO_ResetBits(GPIOA,GPIO_Pin_8);
请教一下,stm32F4的IO速度最快可以达到多少
IoTCatcher
3楼-- · 2019-07-21 14:03
huangjunxing 发表于 2019-5-30 09:53
我用的是stm32F103rct6,IO口速度已经设置成50M了
用这种方法会不会快点GPIO_ResetBits(GPIOA,GPIO_Pin_ ...

stm32f4_gpio_speed.png

直接操作寄存器肯定会省那么一丢丢时间.
弱弱的问下, 你是怎么判断这个IO速度还是不够快?

一周热门 更多>