На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
Страницы: (3) [1] 2 3  все  ( Перейти к последнему сообщению )  
> C++ & COM PORT'ы , Скинуть сигнал
    Как на С++ Можно организовать работу с СОМ портом который находиться на задней панели компа,
    Задача отправить сигнал и проверить дошел ли он туда физически.... Например при помощи светодиода.....

    У меня просьба если на форуме есть програмисты которые работали с програмированием железа и аппаратной части То отзовитесь пожалуйста на aster_x@inbox.ru мне ваша помощь очень нужна.
      Посмотри здесь
      http://www.sources.ru/cpp/cpp_cserialport.shtml
        А еще какие нибудь предпосылки...
          CreateFile("COM1",...)
            Antber а ЧТО ДАЛЬШЕ?
              Цитата aster_x @
              ЧТО ДАЛЬШЕ?
              А дальше берешь нажимаешь ссылку Поиск и находишь кучу ссылок; тоже самое можно сделать в любом поисковике. Про работу с последовательным портом столько написано, что еще 5 лет назад тот же Рамблер выдавал под сотню ссылок.
                Цитата Adil @
                тот же Рамблер выдавал под сотню ссылок


                И по поводу
                Например при помощи светодиода..... Тоже.
                  Писал софтец для управления достаточно круной железякой через COM-поры, если надо могу часть исходников по работе с портами выложить, все на VC++ 6.0
                    CSerialport - проще некуда!!!
                    к COM-порту подцеплял контроллер Atmel через max232(с соответствующей обвязкой работает изумительно).
                    а с помощью светика проверить только при постоянной передачи данных, заципившись на RTS или DTS или TX (вроде так это называется), но там 12 вольт
                    и напряжение не постоянно. диод с резичтором ~800 Ом на какой либо из этих выводов и на землю.
                    потом создаешь класс итд.
                    распиновку COM-порта и схему подключения можно посмотреть на http://gaw.ru (поиск посайту:rs232)
                    распиновка http://www.gaw.ru/html.cgi/txt/interface/rs232/index.htm
                    Сообщение отредактировано: ElcnU -
                      Вооше есть класный сайт [URL=http://rs232.ru]rs232.ru[/URL
                      Прочитал инфу и пользуюсь ей с успехом.Чтоб при помощи светодиода проверить дошёл ли туда сигнал необходима микроса max232, а ей на ногу(по сигналу TX) вешаешь светодиод-это первый вариант если действительно нужна индикация через светодиод.Ну а дальше WriteFile("COM на задней панели" ,...)Но можно и проще---
                      ExpandedWrap disabled
                        memset(&ovr,0,sizeof(ovr));
                            ovr.hEvent=CreateEvent(NULL,TRUE,TRUE,NULL);
                            SetCommMask(port,EV_TXCHAR);
                            WaitCommEvent(port,&mask,NULL);-> эта строка ждёт события на линии которую устоновишь в строке выше.В этой строке вся прога стопорится до тех пор пока не будет желанного TX.Поэтому её нужно сделать в отдельном потоке, а с основного потока послать байт.
                        MessageBox("TX");

                      Если надо больше задавай вопросы.
                        Цитата denim_sake @
                        Вооше есть класный сайт [URL=http://rs232.ru]rs232.ru[/URL
                        Прочитал инфу и пользуюсь ей с успехом.Чтоб при помощи светодиода проверить дошёл ли туда сигнал необходима микроса max232, а ей на ногу(по сигналу TX) вешаешь светодиод-это первый вариант если действительно нужна индикация через светодиод.Ну а дальше WriteFile("COM на задней панели" ,...)Но можно и проще---
                        ExpandedWrap disabled
                          memset(&ovr,0,sizeof(ovr));
                              ovr.hEvent=CreateEvent(NULL,TRUE,TRUE,NULL);
                              SetCommMask(port,EV_TXCHAR);
                              WaitCommEvent(port,&mask,NULL);-> эта строка ждёт события на линии которую устоновишь в строке выше.В этой строке вся прога стопорится до тех пор пока не будет желанного TX.Поэтому её нужно сделать в отдельном потоке, а с основного потока послать байт.
                          MessageBox("TX");

                        Если надо больше задавай вопросы.

                        max232 - преобразователь интерфейсов (из 12 вольт в 5 вольт и обратно)
                        Зачем её ставить для светика???
                        она нужна для 5 вольтового UARTa на микроконтроллерах Atmel, pic итд.
                        тогда уж напрямую на TxD COM-порта через сопротивление ~1000 Ом и на землю...
                        и все тоже получится...
                          Цитата aster_x @
                          Например при помощи светодиода..... Тоже.

                          И поэтому поводу - тоже. Просто MSDN почитать (даже и поисковик не нужен) повнимательней и обнаружить функцию EscapeCommFunction, с помощью которой можно чудесным образом напрямую управлять выводами DTR и RTS.
                            Цитата Adil @
                            И поэтому поводу - тоже. Просто MSDN почитать (даже и поисковик не нужен) повнимательней и обнаружить функцию EscapeCommFunction, с помощью которой можно чедесным образом напрямую управлять выводами DTR и RTS.

                            тоже верно, но это выводы не для передачи данных, а вроде для тактования...
                            как правило с них получаю постоянное напряжение путем установки детектора(последовательно диод, параллельно конденсатор) и стабилизатора (например КР148ЕН8). ну а после светодиод и резистор на 300 ом... только COM-порт по току много не вывезет...(
                            Сообщение отредактировано: ElcnU -
                              .........max232 - преобразователь интерфейсов (из 12 вольт в 5 вольт и обратно)
                              .........Зачем её ставить для светика???

                              А ставить её надо на всякий случай, ток Com порта невилик, и в моеё практике 3 сгоревших ком порта ).Может и действительно для светодиода не надо, но я так привык.
                                Достаточно только светодиода и резистора.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) [1] 2 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0676 ]   [ 16 queries used ]   [ Generated: 28.04.24, 02:36 GMT ]