你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 4453|回复: 4

STM32F103ZCT6 GPIO 做 Hi/Low 測試

[复制链接]

8

主题

13

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2010-3-17 09:09:33 | 显示全部楼层 |阅读模式
小弟使用 STM32F103ZCT6  跑72Mhz ,  將 GPIO 做 Hi/Low 測試 , 時間約 142ns  , 這是最快的嗎? 還是可以更快呢?
    while(1)
     {
          GPIOB->BSRR = GPIO_Pin_7;
          GPIOB->BRR  = GPIO_Pin_7;
          GPIOB->BSRR = GPIO_Pin_7;
          GPIOB->BRR  = GPIO_Pin_7;
          GPIOB->BSRR = GPIO_Pin_7;
          GPIOB->BRR  = GPIO_Pin_7;
          GPIOB->BSRR = GPIO_Pin_7;
          GPIOB->BRR  = GPIO_Pin_7;
          GPIOB->BSRR = GPIO_Pin_7;
          GPIOB->BRR  = GPIO_Pin_7;
     }
TEK00000.JPG
回复

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2010-3-17 09:37:24 | 显示全部楼层

RE:STM32F103ZCT6 GPIO 做 Hi/Low 測試

这样操作应该是最快的了。直接写寄存器。
用汇编的话,估计比这个还能快点。
一条机器时间大约是:1/(72*10^6)=0.014us
回复 支持 反对

使用道具 举报

8

主题

13

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2010-3-17 13:25:46 | 显示全部楼层

回复:STM32F103ZCT6 GPIO 做 Hi/Low 測試

看asm
GPIOB->BSRR = GPIO_Pin_7;    翻成如下

LDR.W    R0,??DataTable108  ;; 0x40010c10
MOVS     R1,#+128
STR      R1,[R0, #+0]
 
GPIOB->BRR  = GPIO_Pin_7;   翻成如下

 LDR.W    R0,??DataTable28  ;; 0x40010c14
 MOVS     R1,#+128
 STR      R1,[R0, #+0]
 
 
??DataTable28:
        DC32     0x40010c14
??DataTable108:
        DC32     0x40010c10
 
要如何把 asm 加到程序裡?
 
 
 
 
回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2010-3-19 16:05:22 | 显示全部楼层

RE:STM32F103ZCT6 GPIO 做 Hi/Low 測試

我的意思是说汇编可能快点。没让你写成汇编,可能是我的表达不太好。
你这样写的话应该是最少时间了。毕竟由总线控制的了。要不你试试超频操作。
回复 支持 反对

使用道具 举报

8

主题

13

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2010-3-20 12:36:20 | 显示全部楼层

回复:STM32F103ZCT6 GPIO 做 Hi/Low 測試

可以超頻嗎?
 
 
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版