02166766927 -02166703652
info@atrinelec.com تهران پاساژ امجد طبقه1 واحد 16
دوره آموزشی میکرو کنترلرهای STM32 _ معرفی SPI (بخش سوم)

دوره آموزشی میکرو کنترلرهای STM32 _ معرفی SPI (بخش سوم)

2018-12-20 22:41:56

جلسه سی و چهارم _ بررسی توابع مربوط به واحد SPI در نرم افزار Keil

در این جلسه قصد داریم تا به معرفی توابع و دستورات مربوط به واحد SPI بپردازیم. پس از فعال نمودن واحد SPI و انجام تنظیمات مربوط به آن در نرم افزار STM32CubeMX ، با ساخت پروژه توابع مربوط به آن در برنامه اضافه می شود. در ابتدا به بررسی این توابع در فایل main.c می پردازیم.

استراکچر مربوط به تنظیمات واحد SPI می باشد.

معرفی تابع تنظیمات واحد SPI1

تابع مربوط به انجام تنظیمات واحد SPI1 می باشد که پارامترهای تنظیم شده در نرم افزار STM32CubeMX در این قسمت تنظیم می شوند.

;hspi1.Init.Mode = SPI_MODE_MASTER

مشخص کننده حالت دستگاه می باشد که در این برنامه دستگاه را بصورت Master تعریف کرده است.

;hspi1.Init.DataSize = SPI_DATASIZE_8BIT

همانطور که قبلا نیز عنوان شد طول بسته دیتا 8 بیتی یا 16 بیتی می باشد که در این پروژه طول دیتا را 8 بیتی تنظیم کرده ایم

;hspi1.Init.CLKPolarity = SPI_POLARITY_LOW

حالت بیکاری پایه کلاک که به عنوان CPOL شناخته می شود را صفر تنظیم کرده ایم، به عبارت دیگر در زمان بیکاری و عدم تبادل داده پایه کلاک صفر منطقی می باشد.

;hspi1.Init.CLKPhase = SPI_PHASE_1EDGE

در این خط فاز SPI مشخص می شود که مشخص می کند نمونه برداری از دیتا را در لبه اول کلاک انجام دهد یا لبه دوم که در این برنامه لبه اول تنظیم شده است.

;hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB

این خط از برنامه نیز مشخص می کند که برای تبادل داده ابتدا بیت کم ارزش ارسال شود یا بیت پر ارزش که در این برنامه ما بیت پر ارزش را برای شروع تبادل داده ارسال می کنیم.

حال به سراغ توابع دیگر SPI در کتابخانه stm32f1xx_hal_spi.c می پردازیم. برای دسترسی به این فایل باید در پوشه Drivers/STM32F1xx_HAL_Driver بر روی فایل stm32f1xx_hal_spi.c دابل کلیک نماییم. این فایل دارای توابع زیادی در مورد واحد SPI می باشد که به چند مورد از توابع پر کاربرد آن اشاره می کنیم.

(HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout

از این تابع برای ارسال یک رشته استفاده می شود و در ورودی تابع چهار آرگومان وارد می شود که آرگومان اول مربوط به استراکچر تنظیمات SPI مورد نظر می باشد و آرگومان دوم نام رشته مورد نظر برای ارسال می باشد و آرگومان سوم نیز مربوط به تعداد داده برای ارسال می باشد. آرگومان چهارم نیز حداکثر زمان انتقال داده بر حسب میلی ثانیه می باشد.

(HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout

از این تابع برای دریافت یک رشته استفاده می شود و چهار آرگومان ورودی دارد که به ترتیب عبارتند از استراکچر مربوط به SPI مورد نظر، نام رشته مورد نظر برای ذخیره داده دریافتی، اندازه یا طول داده دریافتی و آخرین آرگومان نیز حداکثر زمان انتظار برای انتقال داده را بر حسب میلی ثانیه مشخص می کند.

(HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size

وظیفه این تابع ارسال یک رشته به همراه وقفه می باشد که آرگومان های ورودی آن، استراکچر مربوط به SPI مورد نظر، نام رشته مورد نظر برای انتقال و طول داده مورد نظر می باشند.

(HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size

برای دریافت یک رشته اطلاعات بدون توقف و همراه با اینتراپت از این تابع استفاده می شود و آرگومان های وردی آن، استراکچر مربوط به SPI مورد، نام رشته مورد نظر برای ذخیره اطلاعات و طول داده مورد نظر برای دریافت می باشد.

(HAL_SPI_StateTypeDef HAL_SPI_GetState(SPI_HandleTypeDef *hspi

از این تابع برای بررسی شرایط واحد SPI مورد استفاده قرار می گیرد و وضعیت واحد SPI را در آن لحظه مشخص می کند.

 

                                                                                                                                                                    دلتون شاد و لبتون پر خنده

                                                                                                                                                                             محمد هادی دشتی

برای مشاهده آموزش جلسه اول(معرفی هسته آرم و میکروکنترلرهای 32 بیتی شرکت ST  ) کلیک کنید.

برای مشاهده آموزش جلسه دوم( معرفی نرم افزارهای مورد نیازجهت برنامه نویسی و پروگرام  ) کلیک کنید.

برای مشاهده آموزش جلسه سوم( نحوه دانلود آخرین نسخه از نرم افزار STM32CubeMX   ) کلیک کنید.

برای مشاهده آموزش جلسه چهارم(نحوه انجام تنظیمات در نرم افزار STM32CubeMX  ) کلیک کنید.

برای مشاهده آموزش جلسه پنجم(نحوه برنامه نویسی پروژه چشمک زن با نرم افزار Keil ) کلیک کنید.

برای مشاهده آموزش جلسه ششم(نحوه تولید کد و تنظیمات در محیط STM32CubeMX و برنامه نویسی در محیط Keil برای راه اندازی کلید) کلیک کنید.

برای مشاهده آموزش جلسه هفتم(معرفی نرم افزار STM32 Flash Loader Demonstrator و نحوه دانلود برنامه و پروگرام کردن میکرو) کلیک کنید.

برای مشاهده آموزش جلسه هشتم( نحوه راه اندازی ال سی دی کاراکتری-قسمت اول) کلیک کنید.

برای مشاهده آموزش جلسه نهم( نحوه راه اندازی ال سی دی کاراکتری و آشنایی با دستورات کاربردی کتابخانه ال سی دی کاراکتری ) کلیک کنید.

برای مشاهده آموزش جلسه دهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد ADC(بخش اول)  ) کلیک کنید.

برای مشاهده آموزش جلسه یازدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد ADC(بخش دوم)  ) کلیک کنید.

برای مشاهده آموزش جلسه دوازدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد تایمر(بخش اول)  ) کلیک کنید.

برای مشاهده آموزش جلسه سیزدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد تایمر(بخش دوم)  ) کلیک کنید.

برای مشاهده آموزش جلسه چهاردهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی وقفه با تحریک خارجی(جلسه اول) ) کلیک کنید.

برای مشاهده آموزش جلسه پانزدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی وقفه با تحریک خارجی (بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه شانزدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی سون سگمنت(بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه هفدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی سون سگمنت(بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه هجدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی کانتر(بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه نوزدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی کانتر(بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه بیستم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد PWM(بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و یکم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد PWM(بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و دوم (دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد سریال(بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و سوم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد سریال(بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و چهارم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد سریال(بخش سوم)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و پنجم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد DAC(بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و ششم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد DAC(بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و هفت(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی منابع کلاک (بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و هشت(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی منابع کلاک (بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه بیست ونهم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی منابع کلاک (بخش سوم)) کلیک کنید.

برای مشاهده آموزش جلسه سی ام(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی منابع کلاک (بخش چهارم)) کلیک کنید.

برای مشاهده آموزش جلسه سی و یکم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی System Tick Timer) کلیک کنید.

برای مشاهده آموزش جلسه سیو دوم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفیSPI (بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه سی و سوم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفیSPI (بخش دوم)) کلیک کنید.

به سبد خرید اضافه شد.
سبد خرید
Item removed. بازگرداندن