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

STM32F103ZCT6 GPIO 做 Hi/Low 測試

[复制链接]
joeen63 提问时间:2010-3-17 09:09 /
小弟使用 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
收藏 评论4 发布时间:2010-3-17 09:09

举报

4个回答
废鱼 回答时间:2010-3-17 09:37:24

RE:STM32F103ZCT6 GPIO 做 Hi/Low 測試

这样操作应该是最快的了。直接写寄存器。
用汇编的话,估计比这个还能快点。
一条机器时间大约是:1/(72*10^6)=0.014us
joeen63 回答时间: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 加到程序裡?
 
 
 
 
废鱼 回答时间:2010-3-19 16:05:22

RE:STM32F103ZCT6 GPIO 做 Hi/Low 測試

我的意思是说汇编可能快点。没让你写成汇编,可能是我的表达不太好。
你这样写的话应该是最少时间了。毕竟由总线控制的了。要不你试试超频操作。
joeen63 回答时间:2010-3-20 12:36:20

回复:STM32F103ZCT6 GPIO 做 Hi/Low 測試

可以超頻嗎?
 
 

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版