Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Эхо на CDC AT91SAM7

Непрочитано 30.10.2011, 17:25  
rtyugh
Частый гость
 
Регистрация: 16.01.2010
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
rtyugh на пути к лучшему
По умолчанию Эхо на CDC AT91SAM7

Хочу сделать эхо на CDC AT91SAM7
Только начинаю разбираться сильно не ругайте ....
там есть 2 функции

для передачи:
unsigned char CDCDSerialDriver_Write(void *data,
unsigned int size,
TransferCallback callback,
void *argument)
{
return USBD_Write(CDCDSerialDriverDescriptors_DATAIN,
data,
size,
callback,
argument);
}

для приема:

unsigned char CDCDSerialDriver_Read(void *data,
unsigned int size,
TransferCallback callback,
void *argument)
{
return USBD_Read(CDCDSerialDriverDescriptors_DATAOUT,
data,
size,
callback,
argument);
}


Не знаю что должно быть в качестве параметва TransferCallback callback и argument ???
Делаю аот так :
CDCDSerialDriver_Read(usbBuffer,8,0,0);
for (i=0; i‹100000; i++) //задержка
{}
CDCDSerialDriver_Write(usbBuffer,8,0,0);

вот что получаю в терминале ничего не отправляю пока еще:
‹0›‹0›‹0›‹0›‹0›‹0›‹0›‹0›‹0›‹0›‹0›‹0›‹0›‹0›‹0›‹0›‹0 ›
отправляю 1111 и вот что получаю
1111‹0›‹0›‹0›‹0›1111‹0›‹0›‹0›‹0›1111‹0›‹0›‹0›‹0›11 11 и так дальше
Реклама:
rtyugh вне форума  
Сказали "Спасибо" rtyugh
warel (28.06.2019)
Непрочитано 30.10.2011, 18:50  
Alecsej
Вид на жительство
 
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
Alecsej на пути к лучшему
По умолчанию Re: эхо на CDC AT91SAM7

Сначала не плохо проверять сколько пришло, и пришло ли вообще.
А так и шлется каждый раз пустой буфер.
Alecsej вне форума  
Сказали "Спасибо" Alecsej
warel (28.06.2019)
Непрочитано 31.10.2011, 09:13  
rtyugh
Частый гость
 
Регистрация: 16.01.2010
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
rtyugh на пути к лучшему
По умолчанию Re: эхо на CDC AT91SAM7

Сообщение от Alecsej Посмотреть сообщение
Сначала не плохо проверять сколько пришло, и пришло ли вообще.
А так и шлется каждый раз пустой буфер.
спасиб)
что должно быть в качестве параметва TransferCallback callback и argument ???
rtyugh вне форума  
Сказали "Спасибо" rtyugh
warel (28.06.2019)
Непрочитано 31.10.2011, 12:05  
Alecsej
Вид на жительство
 
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
Alecsej на пути к лучшему
По умолчанию Re: Эхо на CDC AT91SAM7

ссылка на функцию, вызываемую по окончании трансфера.
а может и ничего не быть
Alecsej вне форума  
Сказали "Спасибо" Alecsej
warel (28.06.2019)
Непрочитано 01.11.2011, 01:38  
rtyugh
Частый гость
 
Регистрация: 16.01.2010
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
rtyugh на пути к лучшему
По умолчанию Re: Эхо на CDC AT91SAM7

Вот так правильно делать проверку ?

CDCDSerialDriver_Read(usbBuffer,8,0, 0);

for (i=0; i‹1000000; i++)
{}

if (usbBuffer[0]!='\n')
{
CDCDSerialDriver_Write(usbBuffer,8,0, 0);
usbBuffer[0]='\n';
}
rtyugh вне форума  
Сказали "Спасибо" rtyugh
warel (28.06.2019)
Непрочитано 01.11.2011, 09:28  
Alecsej
Вид на жительство
 
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
Alecsej на пути к лучшему
По умолчанию Re: Эхо на CDC AT91SAM7

На вскидку както так:
Код:
void USBreadcallback(    unsigned int unused,
                      unsigned char status,
                      unsigned int received,
                      unsigned int remaining  )
{
    if (status == USBD_STATUS_SUCCESS)
    {
      CDCDSerialDriver_Write(usbBuffer, received, 0, 0);
    }
}

CDCDSerialDriver_Read(usbBuffer,8,(TransferCallbac  k) USBreadcallback, 0);
Alecsej вне форума  
Сказали "Спасибо" Alecsej
warel (28.06.2019)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Руководство пользователя по AT91SAM7 serb-radio Микроконтроллеры, АЦП, память и т.д 1 22.07.2011 20:16
AVR CDC и BootLoader serj_neo Микроконтроллеры, АЦП, память и т.д 3 12.07.2011 11:38
AD7142 CDC Converter levonh Цифровые сигнальные процессоры 3 20.05.2010 13:28
USB CDC realid Микроконтроллеры, АЦП, память и т.д 9 08.06.2009 18:51
FT232 vs USB(в режиме cdc) Binary_Man Микроконтроллеры, АЦП, память и т.д 4 13.11.2008 16:46


Часовой пояс GMT +4, время: 21:52.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.