پارس‌کدرز چگونه کار می‌کند؟

از پارس‌کدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.

پارس‌کدرز خریداران یا کارفرمایان را به مجری‌ها /فریلنسرهای خبره‌ای متصل می‌کند که برای انجام پروژه آماده هستند.

برنامه ارسال و دریافت داده از میکروکنترلر آرم stm32 با واحد usart با جزییات

دو سال پیش منتشر شده

تعداد بازدید: 1207

کد پروژه: 283911


شرح پروژه

فرض که یک میکروکنترلر آرم stm32f103  هست که داره اطلاعاتی از محیط رو مدام و لحظه به لحظه سنس میکنه و یه سری داده دارم به فرم زیر مدام از سنسورها به این میکرو میرسه :

int16_t   P1

int16_t   P2

int16_t   P3

int16_t   P4

int16_t   e1

int16_t   e2

uint32_t  a1

uint32_t  a2

uint32_t  g1

uint32_t  g2

uint32_t  g3 

حالا این داده ها را باید میکرو به کمک واحد usart  به صورت بیسیم به یک کامپیوتر ارسال کنه ، مسئله اینه که باید این داده ها کنارهم کنارهم به کامپیوتر برسند چرا که مثلا قراره اینها در فایلی ذخیره شند و در اون فایل باید مشخص بشه که داده دریافتی از سنسورها در هر برهه زمانی چی بوده و در نتایج خیلی موثره مثلا داده های دریافتی در نیم ثانیه اول و بعد داده های دریافتی از در نیم ثانیه دوم ، و...... 

ابتدا من اومدم داده ها رو در دو آرایه نوشتم (چرا که داده های سنسورها از دو نوع int16  و uint32 هستند) : 

int16_t     data1 [6]       //که ( data1[0]=P1 و data1[0]=P2 و data1[2]=p3 و data1[3]=P4 و data1[4]=e1 و data1[5]=e2 )

uint32_t  data2 [5]     // که ( data2[0]=a1 و data2[1]=a2 و  data2[2]=g1 و data2[3]=g2 و data2[4]=g3  )

ابتدا سعی کردم داده ها را به صورت آسنکرون با تابع هال uart  ارسال کنم 

HAL_UART_Transmit (UART HandleTypeStruct*huart, uint8_t*pData, size, t)

حالا سوالی که پیش میاد دو تا آرایه من که هشت بیتی نیست پس باید چه کار کنم که بدون از دست رفتن اطلاعات خیلی سریع و دقیق بتونم ارسالشون کنم؟  کدها و توضیحات لازم چیه ؟ و آیا اصلا برای تعریف داده ها راه بهتری هست منظور اینه که آرایه نویسی درست هست و... ( به این معنی که راهی که داده ها بدون از دست رفتن و دقیق و سریع کنار هم گذاشته و ارسال بشند)

در بخش دریافت چی مثلا اگر باز هم در دریافت یک میکروی  stm32f103 باشه و بخواهد داده ها رو دریافت کنه چطور داده ها رو دریافت کنه بدون اینکه اطلاعات از دست بره و دوباره آنها رو به فرم 32 و 16 بیتی خودشون ثبت کنه و .....

قبل از درخواست پرکردن در سایت پارسکدرز چندجا  چرخ زدم و  چنین پاسخ هایی بر خوردم:

   https://community.st.com/s/question/0D50X00009XkYTI/sending-float32-with-uart 

https://stackoverflow.com/questions/50097289/sending-16-bit-values-on-8-bit-uart 

https://community.intel.com/t5/Nios-II-Embedded-Design-Suite/how-to-send-recieve-32bit-int-via-UART/td-p/22651 

راستش نگاهی به کلیت انداختم ولی در اجرا و نوشتن کدهاش کار خوبی پیش نبردم برای همین درخواست یاری دادم 

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

سوال بعدی هم اینه که برای ارسال سنکرون از لحاظ کدنویسی چه کار باید کرد ؟ یعنی مثلا از چه تابع هالی میشه استفاده کرد و روند به چه صورت هست چه تغییراتی لازم هست داده شه و ..... کلا دستورات خط به خطی که باید داده شند چه هستند و ....؟ 

آخرین سوال : چه کدها و دستوراتی به کار بره تا سریعترین حالت ممکن برای ارسال و دریافت داده ها ذاشته باشه؟ مثلا به معنا واقعی آنلاین باشه و تمییز و دقیق پیش بره 

مهارت ها و تخصص های مورد نیاز


بودجه

300,000 تومان تا 750,000 تومان

مهلت برای انجام

5روز

وضعیت مناقصه

بسته


درباره کارفرما

عضویت سه سال پیش

4 پروژه ثبت شده ،
0 پروژه در حال انجام ،
0 پروژه آماده دریافت پیشنهاد ،
نرخ پذیرش پیشنهاد 0%

برای پیدا کردن پروژه‌های مشابه ثبت نام کنید و پروفایل خود را بسازید.

ورود با گوگل
یا
نام نباید خالی باشد.
نام خانوادگی نباید خالی باشد.

نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟

سفارش پروژه مشابه

قادر به انجام این پروژه هستید؟

ثبت نام کنید

مهلت ارسال پیشنهاد قیمت برای این پروژه تمام شده است

سری به پروژه‌های مشابه بزنید

روش کار در پارس‌کدرز

به رایگان یک حساب کاربری بسازید

مهارت‌ها و تخصص‌های خود را ثبت کنید، رزومه و نمونه‌کارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.

به شیوه‌ای که دوست دارید کار کنید

برای پروژه‌های دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصت‌های شغلی منحصر به فرد دسترسی پیدا کنید.

با اطمینان دستمزد دریافت کنید

از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.

می‌خواهید شروع به کار کنید؟

یک حساب کاربری بسازید


بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارت‌های شما است.

پیدا کردن کار (پروژه)

تماشای دمو روش کار