راه اندازی ADC در ARM STM32
مشاهده ی فیلم های اموزشی بیشتر درباره ی مبدل انالوگ دیجیتال
هدف از مثال زیر این است که شما با مبدل آنالوگ به دیجیتال ADC)) و طریقه ی راهاندازی آن در میکروکنترلرهای ARM آشنا شوید.
سخت افزار
آشنایی و کار با برنامه
ابتدا برنامه را با نرم افزار Keil باز کنید.
تغذیه 5 ولت را به برد آموزشی متصل کنید و بعد از اینکه پروگرامر ST-LINK را به برد متصل نمودید؛ برنامه را با استفاده از دکمه ی Download پروگرم نمائید.
توضیحات مربوط به برنامه
ابتدا کتابخانه های مربوطه فراخوانی شده اند.
[pastacode lang=”cpp” manual=”%23include%20%22stm32f10x_usart.h%22%0A%23include%20%3Cstdio.h%3E%0A%23include%20%22bsp.h%22%0A%23include%20%22delay.h%22″ message=”” highlight=”” provider=”manual”/]
دستوراتی که در زیر آورده شده است، مربوط به ارسال داده از طریق سریال است که این تنظیمات برای ارسال دادهها استفاده میشوند تا امکان استفاده از printf وجود داشته باشد.
[pastacode lang=”cpp” manual=”%2F%2Fprintf%20init%0Astruct__FILE%20%7B%20inthandle%3B%7D%20%3B%0A%0AFILE__stdout%3B%0AFILE__stdin%3B%0AFILE__stderr%3B%0A%0Aintfputc(intch%2C%20FILE*f)%20%0A%7B%0A%20%20%20%20while(!USART_GetFlagStatus(COM1%2CUSART_FLAG_TXE))%3B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20USART_SendData(COM1%2Cch)%3B%20%20%20%0A%0A%20%20%20%20while(!USART_GetFlagStatus(COM2%2CUSART_FLAG_TXE))%3B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20USART_SendData(COM2%2Cch)%3B%20%20%20%0A%20%20%20%20%20%20%20%0A%20%20%20%20returnch%3B%20%0A%7D” message=”” highlight=”” provider=”manual”/]
در تابع اصلی (main) ابتدا کلاک مربوط به GPIO ، Usart و ADC روشن میشود و سپس پیکربندی مربوط به هر یک از این پریفرالها انجام می گیرد. در داخل حلقهی while از طریق تابع getval مقدار آنالوگ تبدیل به دیجیتال شده و از طریق USAR1 , USART2 ارسال میشوند.
[pastacode lang=”cpp” manual=”intmain(void)%0A%7B%0A%20%20%20%20%2F********%20Intial%20the%20clock%20and%20perpherals%20*************%2F%0A%20%20RCC_Configuration()%3B%0A%20%20GPIO_Configuration()%3B%0A%20%20Com1_Intial()%3B%20%20%2F%2Fusb%20to%20serial%0A%20%20Com2_Intial()%3B%20%20%2F%2FCOM%20PORT%20(Rs232)%0A%20ADC1_Intial()%3B%0A%20delay_intial()%3B%0A%20%20%20%20%0A%20%20printf(%22Naminic%20STM32%20evaluation%20board%22)%3B%0A%20%20%20%20while(1)%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20printf(%22adc%20get%20val%20%3D%20%25d%22%2CgetVal())%3B%0A%20%20%20%20%20%20%20%20delayMs(400)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return0%3B%0A%20%20%20%20%0A%7D” message=”” highlight=”” provider=”manual”/]
نظر بدهید