STM32L02 USB CDC weird reaction upon sending some characters.
Hello,
I have an STM32L052K6 running a simple USB CDC class firmware, generated by STM32CubeIDE. I have it as a test setup that if it receives a 'v' character, it responds with a version number of some kind. If I set that version to 16 0xAA's , the device works fine. But if I change that so it sends 16 0xFF's, the device stops responding after a while.
I've been stuck on this for a while, so any help/hints are appreciated.
Included are my main.c, usbd_cdc_if.c.
Also here is a Python program I am using to test this out:
import usb.core
import usb.util
import sys
import time
dev = usb.core.find(idVendor=0x0483, idProduct=0x5740)
if dev is None:
print("No Device Found")
sys.exit(-1)
if dev.is_kernel_driver_active(0):
try:
dev.detach_kernel_driver(0)
print("kernel driver detached")
except usb.core.USBError as e:
sys.exit("Could not detach kernel driver: ")
else:
print("no kernel driver attached")
dev.set_configuration()
cfg = dev.get_active_configuration()
print(cfg[(1, 0)])
out_ep = cfg[(1, 0)][0]
in_ep = cfg[(1, 0)][1]
#print(out_ep, in_ep)
for i in range(10):
dev.write(0x01, 'v\n')
ret = dev.read(0x81, 17, 1000)
print(ret)
time.sleep(0.5)
if not dev.is_kernel_driver_active(0):
dev.attach_kernel_driver(0)