9415|13

65

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

GPIO翻转(18M)的讨论,更新:增加实验结果 [复制链接]

请香主提供一个GPIO翻转(18M)的例子:
      STM32F的宣传资料上说STM32F103X系列gpio最快反转速度为18M ,我调试了许久都达不到这个速度,只有不到3M的样子,搜索了几个论坛也没看到类似的范例,所以麻烦香主提供一个
----------------------------------------
------------------------------------------
实验总结:
查了以前所有相关的帖子,实现io最快速度要看https://bbs.eeworld.com.cn/club/bbs/list.asp?boardid=49&t=2912729帖子四楼部分,
但是,以实验结果来看不用写成具体到寄存器地址的形式,比如
“要在GPIOA.0产生翻转输出:"
   *(vu32 *)0x40010810 = 0x0001;
   *(vu32 *)0x40010814 = 0x0001"”
直接写成:
GPIOx->BRR = GPIO_Pin;
GPIOx->BSRR = GPIO_Pin;即可,例如:
While(1){
GPIOA->BRR = GPIO_Pin_8; GPIOA->BSRR = GPIO_Pin_8;
GPIOA->BRR = GPIO_Pin_8; GPIOA->BSRR = GPIO_Pin_8;
GPIOA->BRR = GPIO_Pin_8; GPIOA->BSRR = GPIO_Pin_8;
GPIOA->BRR = GPIO_Pin_8; GPIOA->BSRR = GPIO_Pin_8;
GPIOA->BRR = GPIO_Pin_8; GPIOA->BSRR = GPIO_Pin_8;
}
上述程序即可以使PA.8的反转频率达到约18M。
以上在STM32F103C8T6+iar 4.42 +jlink v6下验证通过。
另外非常疑问的一点如下:
无论GPIO_Init时候,无论GPIOA 端口速度被初始化成50M,或10M,或2M,上述程序均可输出18M的波形,只是初始化成2M时,波形较难看(飘在空中的正弦波),10M和50M的波形非常相近(近似正弦波),换句话说,一般的应用端口初始化成10M应该足够用了。
最后:说得再多,不如自己试一下,想偷懒的话反而更浪费时间。
香主在这个问题上同样也犯了懒,反而浪费了过多口舌。
此帖出自stm32/stm8论坛

最新回复

                                 GPIO挂在低速总线上,为36MHz,那么输出一个周期的话,最快也就18MHz了哦。  详情 回复 发表于 2009-9-9 14:08
点赞 关注
 

回复
举报

67

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

本论坛中早有人讨论过,也有例子

                                 请不要使用库函数,需要直接操作I/O寄存器。
此帖出自stm32/stm8论坛
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

那若用库函数的话,最大速度为多少?

                                 我再找找看原来的例子,白头翁,香主很敬业啊
此帖出自stm32/stm8论坛
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 

使用库函数时的最大速度为多少? 我没有感念

                                 我们没有具体测过。
此帖出自stm32/stm8论坛
 
 
 

回复

94

帖子

0

TA的资源

一粒金砂(初级)

5
 

IO翻转用BitBand,PIN_xxxx++;

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 

若用库函数的话,最大速度

                                   若用库函数的话,最大速度估计接近1M
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

7
 

估计你没有优化,我的可以达到约2.7M的样子

                                 不知有没有其他人可以做得更快?
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

8
 

请看看这个帖子

 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

9
 

re:

把ST32 超频!

如果是72MHZ , 位带要4条指令。则

72MHZ/4=18MHZ 估计这是最快的了。

LZ 可以把把ST32 超频!
超到100MHZ看看,可不可以到25 MHZ !
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

10
 

STM32

                                 在STM32里面实现高速的IO很困难,受FLAHS读取速度的限制.在内部SRAM有所改善.如果要实现18M的IO,如果你需要少量快速IO,你可以用SPI的MOSI去完成.
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

11
 

实验总结

                                 详见一楼---------线以下部分
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

12
 

谢谢kgp0213的批评,但我这不是偷懒,我是逼你自己做实验

我曾经做过7年老师,我认为教师的职责是传授能力的,不是简单地灌输知识的。我的原则是不管结论多么简单,一般我不会直接告诉学生这个简单的结论,我宁可多费口舌绕着圈说,也要让学生自己用自己的话把答案说出来,因为只有这样学生们才能真正地学到东西,学到的东西才能变成自己的而不是别人给的。

因此,我最不喜欢的就是动不动就找我要答案,要代码的学生。


关于你的另一个发现“无论GPIO_Init时候,无论GPIOA端口速度被初始化成50M,或10M,或2M,上述程序均可输出18M的波形,只是初始化成2M时,波形较难看(飘在空中的正弦波),10M和50M的波形非常相近(近似正弦波)”,恰恰印证了以前很多人问过的问题:GPIO端口速度的设置是用于选择输出驱动电路的,高频驱动电路能够较少失真地输出高频信号,高频信号通过低驱动电路时失真就会变大。

请查查以前关于端口速度的讨论帖,这一点已经很清楚了。
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

13
 

香主客气了

那些端口速度的讨论帖都看了也都理解那几个速度的定义,只是当初顽固的认为端口速度设置不正确就会完全不能输出或者输出错乱呢,原来stm32的端口设计兼容性还很强呢
所以,实践出真知,这话一点不错
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

14
 
                                 GPIO挂在低速总线上,为36MHz,那么输出一个周期的话,最快也就18MHz了哦。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表