Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/89: Рейтинг темы: голосов - 89, средняя оценка - 4.84
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2

Передача данных через com -порт на микроконтроллер

27.05.2012, 14:59. Показов 18264. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Учусь передавать данные на микроконроллер. Данные передаются по com порту. Почитал информацию и своял во это:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace ComPort
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            serialPort1.Open();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string message = Convert.ToString(textBox1.Text);
            serialPort1.WriteLine(message);
            serialPort1.Close();
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            serialPort1.Close();
        }
    }
}
Где бокс1 - туда можно вписать сообщение для отправки, бокс2 - в него должно приходить сообщение с порта.
Подскажите пожалуйста:
1)когда запускаю, компилятор ругается, говорит, что нет такого порта. В чем дело?
2)Как сделать чтобы именно на com 19 данные отсылались?
3)Что написать, чтобы данные, посланные с устройства, появлялись в боксе2?
4)На микроконтроллере я установил соединение со скоростью 9600, в шарпе важно ли задавать скорость? Если да, то как?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2012, 14:59
Ответы с готовыми решениями:

Передача данных через Com порт
Добрый день форумчане! Мне с помощью программы "free-serial-port-monitor" удалось считал данные, которыми через com порт обменивались...

Передача данных через ИК порт
Нужно организовать систему передачи данных через инфракрасный на ассемблере. ИК должен подключаться к ком порту. Подскажите пожалуйста,...

Передача данных через последовательный порт
Ребят, всем добрый вечер! Предстоит следующая задача: нужно реализовать, например - в отдельном классе, функции для передачи данных через...

5
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
27.05.2012, 15:05
Цитата Сообщение от Костяныч Посмотреть сообщение
1)когда запускаю, компилятор ругается, говорит, что нет такого порта. В чем дело?
2)Как сделать чтобы именно на com 19 данные отсылались?

4)На микроконтроллере я установил соединение со скоростью 9600, в шарпе важно ли задавать скорость? Если да, то как?
Диспетчер устройств - Порты (COM и LPT), никакого COM19 наверняка вы там не увидите, а только список доступных на мат.плате COM-портов и подключённых устройств через USB с драйвером от COM-порта. Скорость COM-порта меняется во вкладке Параметры порта.
1
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
27.05.2012, 18:53  [ТС]
С ноута сижу, на нем 19 порт появляется, когда подключаю микроконтроллер.
Мне бы очень сильно код помог, хотя бы по строчке на каждый пункт.
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
27.05.2012, 19:33
точно при подключении устройства появляется именно 19 порт?, и при этом нет никаких ошибок\отсутствие драйверов в Диспетчере устройств? Потому что вот такой код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.IO.Ports;
using System.Windows.Forms;
 
namespace example
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            var data_for_controller = new byte[100];
            SerialPort port = new SerialPort("COM1");
            port.Open();
            port.Write(data_for_controler, 0, data_for_controler.Length);
            port.Close();
        }
    }
}
работает идеально. Если я ставлю COM19 (да и вообще другой любой кроме первого) компилятор ругается "Порт 'COM19' не существует.", т.к. физически этого порта просто не существует. То что, ваше устройство создаёт некий COM-порт это ничего не значит, ведь вы подключаете его по шине скорее всего COM1, вот и работайте на этом порте. Попробуйте например прочитать данные с устройства через COM1 (точнее тот, который у вас есть физически на мат.плате) и записать эти данные в файл в файл.
1
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
27.05.2012, 21:04  [ТС]
В том-то и прикол, что у меня ноут. На нем нет портов. И когда компилирую программу, которую я выложил, говорит что нет порта 1.((((

Добавлено через 1 час 7 минут
Ура отправляет, хотел принимать данные но говорит что из другого потока не модет к боксу 2 обратиться, как быть?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.Threading;
 
 
namespace ComPort
{
    public partial class Form1 : Form
    {
        SerialPort port;
        Thread readThread;
        public Form1()
        {
            InitializeComponent();
            port = new SerialPort("COM19");
            port.Open();
            readThread = new Thread(read);
            readThread.Start();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string message = Convert.ToString(textBox1.Text);
            port.WriteLine(message);
        }
 
        private void read()
        {
            while (true)
            {
                try
                {
                    string mess = port.ReadLine();
                    textBox2.Text = mess;
                catch (TimeoutException) { }
            }
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            port.Close();
        }
    }
}
0
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
22.08.2013, 09:35
Цитата Сообщение от Костяныч Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
private void read() 
{ 
while (true) 
{
try 
{
 string mess = port.ReadLine();
 /*-->*/textBox2.Text = mess; 
catch (TimeoutException) { } 
} 
}

C#
1
BeginInvoke(new MethodInvoker(()=>textBox2.Text = mess));
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.08.2013, 09:35
Помогаю со студенческими работами здесь

Передача и приём данных через COM-порт
Добрый день! Передо мной поставили задачу написать программу для работы с адаптером OBD2 Elm327 через виртуальный COM-порт. Пробую пока...

Передача и приём данных через COM порт
Задача такая, нужно через ком порт передавать и принимать пачки байтов, всё это по протоколу modbus rtu. Установил библиотеки ком порта...

Получение и передача данных через COM порт
Добрый день Мне кажется, я изобретаю велосипед и должно быть полно примеров такого кода. Но ничего найти не удалось. Суть:...

Чтение/передача данных через USB порт
Задача такова: есть внешний микроконтроллер (Arduino) который связан с ПК ч/з USB (некоторый COM-порт) и вот нужно принимать инфу или её...

Передача данных через COM - порт. Подключение к оборудованию
Здравствуйте. У меня задача, написать программу для удаленного управления Аким 1303. Я установил соединение через COM - порт, настроил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru