سلام، عیدتون مبارک
من یک برنامه ساده چشمک زن با ال ای دی و STM32F103RET6 نوشتم و از کریستال خارجی 16 مگاهرتزی استفاده میکنم ولی در عمل نمیدونم چرا تاخیر یک ثانیه ای رو کمتر حساب میکنه، یعنی به جای اینکه هر یک ثانیه چشمک بزنه زودتر چشمک میزنه. تنظیمات خاصی نیاز داره؟
البته در قسمت OPTION FOR TARGET و در قسمت TARGET فرکانس رو روی 16 مگاهرتز قرار دادم. یعنی مشکل از کجاست؟
البته اینو بگم که نمیخواام با CUBEMX ;کار کنم چون هر چی مثال بود با این نرم افزار بود
من یک برنامه ساده چشمک زن با ال ای دی و STM32F103RET6 نوشتم و از کریستال خارجی 16 مگاهرتزی استفاده میکنم ولی در عمل نمیدونم چرا تاخیر یک ثانیه ای رو کمتر حساب میکنه، یعنی به جای اینکه هر یک ثانیه چشمک بزنه زودتر چشمک میزنه. تنظیمات خاصی نیاز داره؟
البته در قسمت OPTION FOR TARGET و در قسمت TARGET فرکانس رو روی 16 مگاهرتز قرار دادم. یعنی مشکل از کجاست؟
البته اینو بگم که نمیخواام با CUBEMX ;کار کنم چون هر چی مثال بود با این نرم افزار بود
کد:
#include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" void _delay_ms(uint16_t ms); int main(){ GPIO_InitTypeDef GPIO_InitStructure; [FONT=Yekan] [/FONT] RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); while(1){ GPIO_SetBits(GPIOA, GPIO_Pin_0); _delay_ms(1000); GPIO_ResetBits(GPIOA, GPIO_Pin_0); _delay_ms(1000); } } void _delay_ms(uint16_t ms){ uint32_t j=0; j = ms * 14400; while(j--); }
دیدگاه