函数 void usb_set_ctrl_line_state() 实现打开串口的时候,波特率选1200,并且DTR控制输出低电平,就会进入ISP模式。
函数 void USBSerial_ep_out() 实现自定义命令进入ISP模式,默认注释了。
推荐使用 波特率1200+DTR 方式启动boot。这样不需要每一次USB输出都要判断,节省了cpu大量的时间。
1,支持格式化输出 USBSerial_printf,方便直接用USB调试。
2,支持USB(CDC)模式不掉电下载。ISP软件已经支持。
方法:
A,ISP软件,串口边上有一个设置按键,选择 下次使用STC-HID接口进行ISP下载。如果用其他串口工具下载不能选。
B,收到用户命令后复位到ISP监控程序区 选 USB-CDC/串口模式 :波特率选1200,并且DTR 使能。
3,如果用户代码有bug,卡死cup或者跑飞,只能按住P3.2管脚,手动启动isp模式。
4,因为是判断controlLineState打开串口的,如果要使用USBSerial()这个函数,等待上位机串口打开。打开串口的时候需要选的DTR enable。
- uint8_t USBSerial();//判断串口是否打开
- void USBSerial_flush(void);//清空buf
- uint8_t USBSerial_available();//串口数量
- char USBSerial_read();//读一个字节
- uint8_t USBSerial_read_bytes(uint8_t *p, uint8_t len);//读多个字节
- size_t USBSerial_write_bytes(uint8_t *p, size_t len);//写多个字节
- uint8_t USBSerial_write(char c);//写一个字节
- int USBSerial_printf(const char *format, ...);//格式化打印
复制代码
|