完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在玩新唐的M451开发板,遇到要测试IO管脚的最大翻转速度,经过一番研究终于测出来了,在这里做一个总结,希望对遇到同样问题的朋友,有所帮助。
新唐的MCU,IO口的翻转速度理论上的最大值是50MHz,但是理论与现实往往是有差距的,因此想要知道一款单片机IO口的真正翻转速度,就需要自己去真实的测试。 测试方法:在程序中配置一个IO口为推挽输出模式,写一个while(1){} 循环,循环里面不停的将IO口拉低,拉高,拉低,拉高......然后用示波器去测试这个管脚的波形,从示波器上读出那个最高的频率是多少。 注意事项: 1.对于IO口的输出波形,正常情况下应该是方波。 2.写测试程序时,也尽可能的简单,不要有其他的干扰,只需要配置系统时钟,定义IO口,然后就是while循环了。 3.在IO口翻转速率较低的时候,观察波形,是正常的方波,随着翻转速度的不断加大,波形有可能会失真,而不再是一个方波了。在波形有失真时去观察这时候的频率的最大值,一般就是IO口的最大翻转速率。 4.在while循环中的拉低,拉高尽量写的多点,这样就更接近真实值。因为对循环条件的判断上也是要占用时间的 下面是具体的代码,代码基于新唐M451开发板 int main(void) { SYS_Init(); GPIO_SetMode(PC, BIT5, GPIO_MODE_OUTPUT); while(1) { PC5 = 0; PC5 = 1; PC5 = 0; PC5 = 1; PC5 = 0; PC5 = 1; PC5 = 0; PC5 = 1; PC5 = 0; PC5 = 1; PC5 = 0; PC5 = 1; PC5 = 0; PC5 = 1; PC5 = 0; PC5 = 1; PC5 = 0; PC5 = 1; PC5 = 0; PC5 = 1; PC5 = 0; PC5 = 1; PC5 = 0; PC5 = 1; PC5 = 0; PC5 = 1; PC5 = 0; PC5 = 1; ...... } } |
|
相关推荐
2个回答
|
|
真要知道极限,先使用最高频的本振,一般应该还能超频至少20%。然后用汇编编程,用“复制”、“粘贴”法,将整个存储器容量都填充成置1、置0的直接端口操作,最后一条直接跳转到起始地址即可。这才是极限。
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 01:45 , Processed in 0.725715 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号