اطلاعیه

Collapse
No announcement yet.

ارسال فایل Hex از طریق UART

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ارسال فایل Hex از طریق UART

    سلام خدمت دوستان عزیز
    من با #C تونستم 1 بایت 1بایت از طریق میکرو توی یک EEPROM خارجی اطلاعات بریزم حالا می خوام یک فایل HEX رو از طریق میکرو تویEEPROM بریزم
    کسی میدونه چطور میشه این کارو کرد.؟؟؟

    #2
    پاسخ : ارسال فایل Hex از طریق UART

    این فایل هگز کجاست؟
    هر فایل ساختاری داره.مثل فایل های صوتی wave که اعداد دریافت شده از ADC رو پشت هم میچینه و سر و ته فایل رو به روش خاصی میبنده.
    حالا باید ساختارش رو ببینی و بایت به بایت دوباره ارسال کنی.نباید کاره پیچیده ایی باشه.من تاحالا این کارو نکردم که دقیق بهت بگم ولی راه همینه
    خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

    دیدگاه


      #3
      پاسخ : ارسال فایل Hex از طریق UART

      حمید جان دمت گرم
      این فایل هگز خروجی نرم افزار codecomposer و ما میخواهیم این فایل رو تماما داخل eeprom بریزیم و بعد این فایل را به صورت کامل به وسیله dsp بخوانیم.
      در ضمن دستوری را که #C به وسیله آن این فایل رو می فرسته چیه ؟؟؟

      دیدگاه


        #4
        پاسخ : ارسال فایل Hex از طریق UART


        [img]http://www.*****upload.com/images/85428334287615896889.jpg[/img]
        http://ceworld.ir/images/ads/dornablogcom_ads.gif

        دیدگاه


          #5
          پاسخ : ارسال فایل Hex از طریق UART

          فایل هگز رو با یک streamreader خط به خط بخون و به صورتی که قابل چک کردن برای صحت اطلاعات توسط میکرو باشه برای میکرو با متد WriteLine بفرست.

          مثال:


          کد:
          using System;
          using System.Text;
          using System.IO.Ports;
          using System.IO;
          
          namespace Test1
          {
          	class Program
          	{
          		static void Main(string[] args)
          		{
          			string s;
          
          			using (StreamReader sr = new StreamReader("a.hex", Encoding.ASCII))
          			{
          				using (SerialPort sp = new SerialPort("com1", 9600, Parity.None, 8, StopBits.One))
          				{
          					sp.Open();
          					sp.Encoding = Encoding.ASCII;
          					sp.NewLine = "\n";
          					sp.ReadTimeout = 1000;
          
          					while ((s = sr.ReadLine()) != null)
          					{
          						sp.Write(s);
          						if (sp.ReadByte() != 0x05) //ACK
          						{
          							Console.WriteLine("Error sending data to micro");
          							return;
          						}
          					}
          				}
          			}
          		}
          	}
          }


          حالا میتونی تبدیل فایل هگز به اطلاعات خام رو در میکرو انجام بدی. این روش این حسن رو داره که میشه دانلود اطلاعات رو حتی با یک terminal انجام داد.

          دیدگاه


            #6
            پاسخ : ارسال فایل Hex از طریق UART

            من می خوام بدونم با چه دستورهایی میشه اطلاعات یک فایل txt یا HEX رو کارکتر به کارکتر ارسال کرد.که طرف میکرو بتونم اطلاعاتو با اینتراپت دریافت کنم :smile:

            دیدگاه


              #7
              پاسخ : ارسال فایل Hex از طریق UART

              آقاجون مشکلتو با ذکر جزئیات بگو تا یک راه حل جامع برات دربیاریم. اول گفتی مشکل ارسال به میکرو در C# رو داری کد خدمتت تقدیم کردم. حالا میگی اطلاعات یک فایل بصورت بایت به بایت. فکر کنم داره میشه دعوای عنب و اوزوم.
              اگر فرض رو بر این بذاریم که جنابعالی یک فایل هگز داری و میخوای محتوای این فایل رو برای یک میکرو ارسال کنی راحتترین و مطمئن ترین راه خواندن فایل هگز بصورت متنی و ارسال اون به میکرو بصورت خط به خط هست. به ازای هر خط هم میشه از میکرو یک ack گرفت تا مطمئن بشی اطلاعات بصورت تکمیل ارسال شده. حالا فقط بایستی بگی حجم ماکزیمم فایل هگز تولیدی چقدر میتونه باشه. 16 بیتیه یا 32 بیتی. میکروت چیه. تا بشه حداقل یه کد مجازی نوشت تا در میکرو مشکلت رو حل کنه.
              ایضا فقط من میتونم این کد رو به سی تقدیم کنم چون اسمبلی dsp بلد نیستم.و ایضا لزومی هم نداره.

              دیدگاه


                #8
                پاسخ : ارسال فایل Hex از طریق UART

                هر دو موضوع یه چیزه که شما دقت نکردی
                حجم ماکزیمم فایل هگز تولیدی 32 بیتی. میکرو هم Mega32

                دیدگاه


                  #9
                  پاسخ : ارسال فایل Hex از طریق UART

                  عزیزم این فایل هگزی که میگی، فرمتش به چه شکله؟!

                  خودت یه سری داده رو در مبنای 16 ریختی توش؟! اگه اینطوریه که طبق برنامه ای که دوستان در بالا دادند، داده رو ارسال کن.

                  اگه نه فرمتش مثل فایل هگزی هست که میکرو میسازه، طبق اون عکسی که گذاشتم باید داده رو ازش بکشی بیرون.
                  http://ceworld.ir/images/ads/dornablogcom_ads.gif

                  دیدگاه


                    #10
                    پاسخ : پاسخ : ارسال فایل Hex از طریق UART

                    نوشته اصلی توسط programer
                    هر دو موضوع یه چیزه که شما دقت نکردی
                    حجم ماکزیمم فایل هگز تولیدی 32 بیتی. میکرو هم Mega32
                    ظاهرا دوستان منظور شما رو خوب نفهمیدن شما می تونی از کنترل OpenFileDialog توی c# استفاده کنی و طبق کد زیر اطلاعات فایل Hex یا txt رو
                    بفرستی وبا اینتراپت رسیو میکرو اونو بخونی موفق باشی
                    using System;
                    using System.Collections.Generic;
                    using System.ComponentModel;
                    using System.Data;
                    using System.Drawing;
                    using System.Text;
                    using System.Windows.Forms;

                    namespace Dialogs
                    {
                    public partial class Dialogs : Form
                    {
                    public Dialogs()
                    {
                    InitializeComponent();
                    }


                    // Declare variables
                    private string strFileName;

                    private void btnOpen_Click(object sender, EventArgs e)
                    {
                    openFileDialog1.Filter = "Text files (*.txt) |*.txt|"
                    + " All files (*.*) |*.*";
                    openFileDialog1.FilterIndex = 1;
                    openFileDialog1.Title = "Demo Open File Dialog";
                    // Show the OpenFileDialog and if the user clicks the
                    // Open button, load the file
                    if (openFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                    // Save the file name
                    strFileName = openFileDialog1.FileName;
                    // Read the contents of the file

                    txtFile.Text =
                    System.IO.File.ReadAllText(strFileName);
                    sp.Open();
                    sp.Write(txtFile.Text);
                    sp.Write(txtFile.Text);
                    }
                    }
                    }
                    }

                    دیدگاه

                    لطفا صبر کنید...
                    X