با سلام خدمت دوستان و اساتید گرامی،
. یه هدربورد STM32F103RET6 موجود در فروشگاه سایت رو گرفتم و برای تست سرعت یه برنامه نوشتم که یه پین رو on و بلافاصله off کنه بعد از این کار فرکانس اون پین رو میگیرم حدود 342khz و هر کاری میکنم بالاتر از اون نمیره :angry: انتظار داشتم حداقل سرعتش تا یک مگا هرتز برسه 
حالا سوال اینجاست که برنامه ای که من نوشتم اشتباهه یا سرعت پینها همینقدره؟ کسی تا حالا سرعت پینها رو تست کرده ؟ احتمالش هست به خاطر استفاده از peripheral میکرو سرعت پایین بیاد یعنی برای استفاده حداکثر ار سرعت مجبور باشیم اسمبلی بنویسیم؟
کد برنامه من اینه:(کامپایلر هم gcc و ide هم eclipse هستش)
ممنون بابت جواب دادن به سوال


حالا سوال اینجاست که برنامه ای که من نوشتم اشتباهه یا سرعت پینها همینقدره؟ کسی تا حالا سرعت پینها رو تست کرده ؟ احتمالش هست به خاطر استفاده از peripheral میکرو سرعت پایین بیاد یعنی برای استفاده حداکثر ار سرعت مجبور باشیم اسمبلی بنویسیم؟
کد برنامه من اینه:(کامپایلر هم gcc و ide هم eclipse هستش)
کد:
// This file is part of the GNU ARM Eclipse distribution. // Copyright (c) 2014 Liviu Ionescu. // // ---------------------------------------------------------------------------- #include <stdio.h> #include "diag/Trace.h" #include <stm32f10x_conf.h> #include "stm32f10x_gpio.h" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" #pragma GCC diagnostic ignored "-Wmissing-declarations" #pragma GCC diagnostic ignored "-Wreturn-type" int main(int argc, char* argv[]) { uint8_t i; GPIO_InitTypeDef GPIO_Conf; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_Conf.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12; GPIO_Conf.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Conf.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_Conf); // Infinite loop while (1) { GPIO_SetBits(GPIOB, GPIO_Pin_0); GPIO_ResetBits(GPIOB, GPIO_Pin_0) } return 0; } #pragma GCC diagnostic pop
دیدگاه