diff --git a/board/main.c b/board/main.c index 34a5297..82b11b8 100644 --- a/board/main.c +++ b/board/main.c @@ -530,10 +530,12 @@ int usb_cb_control_msg(USB_Setup_TypeDef *setup, uint8_t *resp) { break; case 0xe1: // uart set baud rate ur = get_ring_by_number(setup->b.wValue.w); + if (!ur) break; uart_set_baud(ur->uart, setup->b.wIndex.w); break; case 0xe2: // uart set parity ur = get_ring_by_number(setup->b.wValue.w); + if (!ur) break; switch (setup->b.wIndex.w) { case 0: // disable parity diff --git a/lib/panda.py b/lib/panda.py index bc40d50..af37f97 100644 --- a/lib/panda.py +++ b/lib/panda.py @@ -133,7 +133,7 @@ class Panda(object): # ******************* serial ******************* def serial_read(self, port_number): - return self.handle.controlRead(usb1.TYPE_VENDOR | usb1.RECIPIENT_DEVICE, 0xe0, port_number, 0, 0x100) + return self.handle.controlRead(usb1.TYPE_VENDOR | usb1.RECIPIENT_DEVICE, 0xe0, port_number, 0, 0x40) def serial_write(self, port_number, ln): return self.handle.bulkWrite(2, chr(port_number) + ln) @@ -148,7 +148,7 @@ class Panda(object): # drain buffer bret = "" while 1: - ret = self.handle.controlRead(usb1.TYPE_VENDOR | usb1.RECIPIENT_DEVICE, 0xe0, bus, 0, 0x100) + ret = self.handle.controlRead(usb1.TYPE_VENDOR | usb1.RECIPIENT_DEVICE, 0xe0, bus, 0, 0x40) if len(ret) == 0: break bret += str(ret)