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

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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版