OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2134|回复: 3

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

[复制链接]

27

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2016-12-31
在线时间
82 小时
发表于 2019-5-30 09:17:46 | 显示全部楼层 |阅读模式
#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口置低或者置高,有速度更加快的写法吗,是不是直接操作寄存器会更加省时间

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2018-9-6
在线时间
37 小时
发表于 2019-5-30 09:40:23 | 显示全部楼层
一般来说, 这个速度对于控制LED应该是影响不大.你可以初始化GPIO的时候, 吧GPIO的速度设为最快等级.
回复 支持 反对

使用道具 举报

27

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2016-12-31
在线时间
82 小时
 楼主| 发表于 2019-5-30 09:53:30 | 显示全部楼层
IoTCatcher 发表于 2019-5-30 09:40
一般来说, 这个速度对于控制LED应该是影响不大.你可以初始化GPIO的时候, 吧GPIO的速度设为最快等级.

我用的是stm32F103rct6,IO口速度已经设置成50M了
用这种方法会不会快点GPIO_ResetBits(GPIOA,GPIO_Pin_8);
请教一下,stm32F4的IO速度最快可以达到多少
回复 支持 反对

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2018-9-6
在线时间
37 小时
发表于 2019-5-30 10:36:09 | 显示全部楼层
huangjunxing 发表于 2019-5-30 09:53
我用的是stm32F103rct6,IO口速度已经设置成50M了
用这种方法会不会快点GPIO_ResetBits(GPIOA,GPIO_Pin_ ...

stm32f4_gpio_speed.png

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-9 08:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表