data to be sent
* @param Len: Number of data to be sent (in bytes)
*/
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)
{
uint8_t result = USBD_OK;
USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*)hUsbDeviceFS.pClassData;
if (hcdc->TxState != 0){
return USBD_BUSY;
}
USBD_CDC_SetTxBuffer(&hUsbDeviceFS, Buf, Len);
result = USBD_CDC_TransmitPacket(&hUsbDeviceFS);
return result;
}
```
Есть пример использования:
char data[] = "Hello World from USB CDC\n";
CDC_Transmit_FS((uint8_t*)data, strlen(data));
Так все работает и отправляется.
Сделал функцию, которая принимает в себя данные и отправляет.
```void sendMessage(char data[]) {
// char data[] = WAITING_FOR_TAMPER_COIL_PRESSED;
CDC_Transmit_FS((uint8_t*) data, strlen(data));
}```
получаю варнинг.
```../Core/Src/main.cpp:226:32: error: invalid conversion from 'uint8_t*' {aka 'unsigned char*'} to 'const char*' [-fpermissive]
226 | CDC_Transmit_FS(data, strlen(data));```
если варинг есть - значит пишу фигню? как сделать правильно?
ты не этот код скомпилировал
Юзал бы лучше libusb, а не это говно, прости Господи...
отсутствие компетенции заставляет проявлять творчество. я пишу прошивку под stm32103f8 (сдвиговые регистры 595/165, общение по usb/uart). если есть желание объяснить 2как правильно"/помочь/направить на путь истенный - погнали в дискорд)
это не ворнинг, а еррор
Обсуждают сегодня