USB转URAT高速串口芯片CH343支持115200bps以下通讯波特率

简介

CH343是一个USB总线的转接芯片,实现USB转高速异步串口,同时支持115200bps及以下通讯波特率的自动识别和动态自适应,提供了常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备或者MCU直接升级到USB总线。

芯片特性

  • 全速USB设备接口,兼容USB V2.0。
  • 内置固件,仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。
  • 计算机端Windows操作系统下的串口应用程序完全兼容,无需修改。
  • 支持免安装的操作系统内置CDC类驱动程序或者多功能高速率的VCP厂商驱动程序。
  • 硬件全双工串口,内置独立的收发缓冲区,支持通讯波特率50bps~6Mbps。
  • 可选自动识别和动态自适应在115200bps及以下的常用通讯波特率。
  • 串口支持5、6、7或者8个数据位,支持奇校验、偶校验、空白、标志以及无校验。
  • 支持常用的MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS。
  • 支持CTS和RTS硬件自动流控。
  • 支持半双工,提供正在发送状态TNOW支持RS485切换。
  • 通过外加电平转换器件,支持RS232接口。
  • USB端支持5V电源电压和3.3V电源电压。
  • 串口I/O独立供电,支持5V、3.3V、2.5V、1.8V电源电压。
  • 内置上电复位,内置时钟,无需外部晶振。
  • CH343P内置EEPROM,可配置芯片VID、PID、最大电流值、厂商和产品信息字符串等参数。
  • 芯片内置Unique ID(USB Serial Number)。
  • 提供SOP16和ESSOP10及QFN16无铅封装,兼容RoHS。

应用领域

  • USB 转 9 线 TTL 串口
  • USB 转 9 线 RS232 串口
  • USB 转 RS485
  • 连接单片机串口,各自供电

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基于STC89C52单片机的实现代码,代码中使用P1口控制LED灯的亮灭,通过UART串口模块进行通讯,注意需要根据具体的硬件连接情况修改相应的引脚和波特率等参数。 ```c #include <reg52.h> #include <intrins.h> #define FOSC 11059200UL #define BAUD 115200UL #define TIMER_TH (65536UL - (FOSC/4UL/BAUD)) sbit LED1 = P1^0; sbit LED2 = P1^1; sbit LED3 = P1^2; sbit LED4 = P1^3; sbit LED5 = P1^4; sbit LED6 = P1^5; sbit LED7 = P1^6; sbit LED8 = P1^7; void UART_Init() { SCON = 0x50; // 8位数据,无校验位,1位停止位,串口模式1 TMOD &= 0x0F; // 设置定时器1为模式2 TMOD |= 0x20; TH1 = TIMER_TH / 256; TL1 = TIMER_TH % 256; TR1 = 1; // 启动定时器1 ES = 1; // 使能串口中断 EA = 1; // 使能总中断 } void UART_SendByte(unsigned char dat) { SBUF = dat; while(!TI); // 等待发送完成 TI = 0; // 清除发送完成标志 } void main() { UART_Init(); while(1); } void UART_ISR() interrupt 4 using 1 { static unsigned char led_state = 0x00; unsigned char ch; if(RI) { ch = SBUF; // 读取接收到的数据 RI = 0; // 清除接收中断标志 ch = ~ch; // 取反数据 if(ch & 0xF0) led_state |= (1 << (ch & 0x0F)); // 点亮LED else led_state &= ~(1 << (ch & 0x0F)); // 熄灭LED LED1 = led_state & 0x01; LED2 = led_state & 0x02; LED3 = led_state & 0x04; LED4 = led_state & 0x08; LED5 = led_state & 0x10; LED6 = led_state & 0x20; LED7 = led_state & 0x40; LED8 = led_state & 0x80; UART_SendByte(ch); } } ``` 在上述代码中,UART_Init()函数用于初始化串口,设置波特率串口模式;UART_SendByte()函数用于发送一个字节的数据;UART_ISR()函数为串口中断服务函数,用于处理接收到的数据、控制LED的亮灭以及发送反后的数据。通过修改LED的状态来控制LED的亮灭,同时将收到的数据取反后通过UART发送回PC机。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值