目的
测试不同情况下IO翻转的速度
测试环境
- MDK5.38
- 实验例程\\实验一 流水灯实验
- 示波器:DS1054
测试代码
- 使用TOG进行测试:
int main()
{
uint32_t i;
RCC_Configuration(); //时钟配置64M
GPIO_Configuration();//LED初始化
while(1)
{
PA08_TOG();
}
}
速率为4MHz:
- 使用直接写高BSRR/BRR
int main()
{
uint32_t i;
RCC_Configuration(); //时钟配置64M
GPIO_Configuration();//LED初始化
while(1)
{
PA08_SETHIGH();
PA08_SETLOW();
}
}
所示频率为6.41MHz
- 我们看到上面的波形占空比好象不是50%,是因为跳转也需要点用时间,所以我修改了一下代码进行测试:
int main()
{
uint32_t i;
RCC_Configuration(); //时钟配置64M
GPIO_Configuration();//LED初始化
loop:
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
goto loop;
}
测得波形如下:
从上图我们得知频率可以达到15.9MHz。
- 经查看数据手册,GPIO有两种速度模式一种高速,一种是低速,但是我配置高低速都是一样。
【总结】经测试,对GPIO进行了原子的操作,最高速度可以达到15.9MHz。对寄存器直接写BSRR、BRR,相比TOG速度还是要快很多。当于提供了TOG这个寄存器,对于需要翻转电平,还是非常方便的。
审核编辑:汤梓红
-
测试
+关注
关注
7文章
2778浏览量
123850 -
示波器
+关注
关注
104文章
4130浏览量
179014 -
流水灯
+关注
关注
21文章
395浏览量
58408 -
开发板
+关注
关注
21文章
2913浏览量
91101 -
GPIO
+关注
关注
14文章
743浏览量
49275 -
CW32
+关注
关注
0文章
20浏览量
16
发布评论请先 登录
相关推荐
【CW32饭盒派开发板试用体验】+机械臂游戏项目(开源)(5)加红外游戏操控机
CW32饭盒派开发板试用体验】+机械臂游戏项目(开源)(1)开箱试验舵机 - 武汉芯源MCU - 电子技术论坛 - 广受欢迎的专业电子论坛!
【
发表于 05-24 22:27
【CW32饭盒派开发板试用体验】+机械臂游戏项目(开源)(1)开箱试验舵机
CW32饭盒派开发板试用体验机会,想利用业余时间,做个机械臂游戏项目,用咱们的这个开发板,让更多的人了解此国产芯片的项目,了解此开发板,此项目开源,可以为更多的工程师上手提供经验
发表于 04-28 20:10
【CW32饭盒派开发板试用体验】+机械臂游戏项目(开源)(4)多加点东西
开发。【CW32饭盒派开发板试用体验】+机械臂游戏项目(开源)(1)开箱试验舵机 - 武汉芯源MCU - 电子技术论坛- 广受欢迎的专业电子论坛! https
发表于 05-08 18:40
评论