| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Эхо на CDC AT91SAM7
30.10.2011, 17:25
|
|
|
Частый гость
Регистрация: 16.01.2010
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Эхо на 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 и так дальше
|
|
|
|
30.10.2011, 18:50
|
|
|
Вид на жительство
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
|
Re: эхо на CDC AT91SAM7
Сначала не плохо проверять сколько пришло, и пришло ли вообще.
А так и шлется каждый раз пустой буфер.
|
|
|
|
Сказали "Спасибо" Alecsej
|
|
|
31.10.2011, 09:13
|
|
|
Частый гость
Регистрация: 16.01.2010
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: эхо на CDC AT91SAM7
Сообщение от Alecsej
|
Сначала не плохо проверять сколько пришло, и пришло ли вообще.
А так и шлется каждый раз пустой буфер.
|
спасиб)
что должно быть в качестве параметва TransferCallback callback и argument ???
|
|
|
|
31.10.2011, 12:05
|
|
|
Вид на жительство
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
|
Re: Эхо на CDC AT91SAM7
ссылка на функцию, вызываемую по окончании трансфера.
а может и ничего не быть
|
|
|
|
Сказали "Спасибо" Alecsej
|
|
|
01.11.2011, 01:38
|
|
|
Частый гость
Регистрация: 16.01.2010
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
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';
}
|
|
|
|
01.11.2011, 09:28
|
|
|
Вид на жительство
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
|
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
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:52.
|
|