سلام.
در نسخه ای از CMSISآ و کتابخانه های جانبی مخصوص STM32F10x تابعی جهت اختصاص یک پایه به یکی از AF ها( Alternate functions) وجود نداره در حالی که برای سری های F4 با نام GPIO_PinAFConfig هست و حالا سوال پیش میاد که اگه چند تا ماژول به یک پایه متصل باشن چطوری به میکرو بفهمونیم که الان پایه رو به کدوم ماژول متصل کنه؟ طبق تجربه ای که برخی از دوستان توی شرکت دارن، مثلا اگه از یه پایه به عنوان SPI استفاده شده باشه، با فعال کردن ماژول SPI و تعریف پایه به عنوان GPIO_Mode_AF_OD یا GPIO_Mode_AF_PP میشه با ماژول کار کرد.
از طرفی یه پایه فقط به عنوان یک AF تعریف نشده، ممکنه یه پایه برای 4 تا AF هم تعریف شده باشه. حالا اگه به اشتباه دو تا ماژول رو که از یک پایه استفاده می کنن با هم راه اندازی کنیم و هر دو هم قصد داشته باشن از پایه استفاده کنن چه اتفاقی می افته؟
از طرفی من می خواهم از AF در حال ورودی استفاده کنم. برای راه اندازی یک پتانسیومتر دیجیتال یا rotary encoder می خوام از پایه های متعلق به تایمر مثلا 3 استفاده کنم. اولا باید ورودی تعریف بشن ولی برای تعریف پورت به عنوان AF و ورودی گزینه ای وجود نداره و AF ها هر دو خروجی هستن. ثانیا اینکه در قسمت تایمر با پیکربندی های معمول به صورت خودکار از پورت خواهد خوند؟
با سپاس
کد های پیکربندی:
در نسخه ای از CMSISآ و کتابخانه های جانبی مخصوص STM32F10x تابعی جهت اختصاص یک پایه به یکی از AF ها( Alternate functions) وجود نداره در حالی که برای سری های F4 با نام GPIO_PinAFConfig هست و حالا سوال پیش میاد که اگه چند تا ماژول به یک پایه متصل باشن چطوری به میکرو بفهمونیم که الان پایه رو به کدوم ماژول متصل کنه؟ طبق تجربه ای که برخی از دوستان توی شرکت دارن، مثلا اگه از یه پایه به عنوان SPI استفاده شده باشه، با فعال کردن ماژول SPI و تعریف پایه به عنوان GPIO_Mode_AF_OD یا GPIO_Mode_AF_PP میشه با ماژول کار کرد.
از طرفی یه پایه فقط به عنوان یک AF تعریف نشده، ممکنه یه پایه برای 4 تا AF هم تعریف شده باشه. حالا اگه به اشتباه دو تا ماژول رو که از یک پایه استفاده می کنن با هم راه اندازی کنیم و هر دو هم قصد داشته باشن از پایه استفاده کنن چه اتفاقی می افته؟
از طرفی من می خواهم از AF در حال ورودی استفاده کنم. برای راه اندازی یک پتانسیومتر دیجیتال یا rotary encoder می خوام از پایه های متعلق به تایمر مثلا 3 استفاده کنم. اولا باید ورودی تعریف بشن ولی برای تعریف پورت به عنوان AF و ورودی گزینه ای وجود نداره و AF ها هر دو خروجی هستن. ثانیا اینکه در قسمت تایمر با پیکربندی های معمول به صورت خودکار از پورت خواهد خوند؟
با سپاس
کد های پیکربندی:
کد:
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//GPIO_Mode_AF_PP GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6| GPIO_Pin_7; GPIO_Init(GPIOA, &GPIO_InitStructure); TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_Period = 0xffff; // Maximal TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); // TIM_EncoderMode_TI1: Counter counts on TI1FP1 edge depending on TI2FP2 level. TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI1, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);//TIM_EncoderMode_TI12 TIM_Cmd(TIM3, ENABLE);



دیدگاه