完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用相同的流水灯程序,在不同的工程环境里面编译,然后下载到同一个 STM 32 的开发板上面,结果,跑流水灯的速度却不一样?
这是为什么呀?求高手,牛人,解答? 万分感谢。以下是程序。 #include "STM32f10x.h" #define RCC_GPIO_LED RCC_APB2Periph_GPIOF /*LED使用的GPIO时钟*/#define LEDn 4 /*神舟III号LED数量*/#define GPIO_LED GPIOF /*神舟III号LED灯使用的GPIO组*/ #define DS1_PIN GPIO_Pin_6 /*DS1使用的GPIO管脚*/#define DS2_PIN GPIO_Pin_7 /*DS2使用的GPIO管脚*/#define DS3_PIN GPIO_Pin_8 /*DS3使用的GPIO管脚*/#define DS4_PIN GPIO_Pin_9 /*DS4使用的GPIO管脚*/ GPIO_InitTypeDef GPIO_InitStructure; u8 count=0; void Delay(vu32 nCount); //延时函数。定义在文件末尾部分。void Turn_On_LED(u8 LED_NUM); //点亮一个LED灯的函数,定义在文件末尾部分。 /******************************************************************************** Function Name : main* Description : Main program.* Input : None* Output : None* Return : None*******************************************************************************/int main(void){ RCC_APB2PeriphClockCmd(RCC_GPIO_LED, ENABLE); /*使能LED灯使用的GPIO时钟*/ GPIO_InitStructure.GPIO_Pin = DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN; //定义待设置的GPIO管脚。 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置选中管脚的模式为,推挽输出。 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置选中管脚的速率。 GPIO_Init(GPIO_LED, &GPIO_InitStructure); /*GPIO口初始化*/ GPIO_SetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN);/*关闭所有的LED指示灯.*/ while(1) { GPIO_SetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN);/*关闭所有的LED指示灯*/ Turn_On_LED(count%4); //点亮一个LED灯 count++; Delay(0x2FFFFF); } } /*点亮对应灯*/void Turn_On_LED(u8 LED_NUM){ switch(LED_NUM) { case 0: GPIO_ResetBits(GPIO_LED,DS1_PIN); /*点亮DS1灯。*/ break; case 1: GPIO_ResetBits(GPIO_LED,DS2_PIN); /*点亮DS2灯*/ break; case 2: GPIO_ResetBits(GPIO_LED,DS3_PIN); /*点亮DS3灯*/ break; case 3: GPIO_ResetBits(GPIO_LED,DS4_PIN); /*点亮DS4灯*/ break; default: GPIO_ResetBits(GPIO_LED,DS1_PIN|DS2_PIN|DS3_PIN|DS4_PIN); /*点亮所有的灯*/ break; }} void Delay(vu32 nCount){ for(; nCount != 0; nCount--);} |
|
相关推荐
7个回答
|
|
神舟的代码?
|
|
|
|
高手,好眼力。是神舟的代码。但是,我自己新建一个工程用 v3.5.0 的固件库,编译后,下到神舟的板子里面,流水灯的速度就和 神舟自带工程里面的不一样,要慢一些。很明显,肉眼就能看出来差别。求解答。谢谢。
|
|
|
|
时钟频率不一样了吧.你初始化的时候.
|
|
|
|
应该一样吧,我把自己新建的工程的 startup_stm32f10x_hd.s,stm32f10x_rcc.c,system_stm32f10x.c 这三个文件全部都替换成和神舟的例子工程一样的文件了,但是,速度还是不同。唉。。。。。。不知道怎么回事。?
|
|
|
|
软件仿真,看寄存器,看看每个代码的系统时钟是多少?
|
|
|
|
很好理解啊,不同的编译器对同一条C代码生成的汇编语言有可能不同,同一编译器在不同优化条件下生成的汇编代码也有可能不同,查一下汇编代码就知道了。汇编指令的数目肯定不同。
要实现精确定时,需要 SYSTICK 中断。 |
|
|
|
多谢楼上的各位了。可能是 汇编代码 不同吧。小弟在此谢过大家了。
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 07:35 , Processed in 1.140821 second(s), Total 91, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号