请问144K246串口3的问题
原来在32G12K128上面使用没有问题,现在改到32G144K上面使用,用串口监控到的数据都是6CF,但是单片机收到数据会在6CF和68F两个数之间跳动使用Timer3做波特率发生器, P0.0 P0.1口
串口配置如下
T3R = 0; //Timer stop
S3CON = 0x50; //8位数据, 使用Timer3做波特率发生器, 允许接收
S3CFG = 0x01; //使用Timer3做波特率发生器开始不能接收看了PDF之后添加了这一句
T3H = (u8)(Baudrate3 / 256);
T3L = (u8)(Baudrate3 % 256);
T3_CT = 0; //Timer3 set As Timer
T3x12 = 1; //Timer3 set as 1T mode
T3R = 1; //Timer run enable
USB转【7组串口-CDC + 1HID】,USB复合设备例程,STC32G144K246,16个USB端点 - STC32G144K246 测试版块,PGA/运放,DAC,CAN-FD,主频100MHz以下 国芯人工智能技术交流网站 - AI32位8051交流社区
神农鼎 发表于 2026-1-5 10:14
USB转【7组串口-CDC + 1HID】,USB复合设备例程,STC32G144K246,16个USB端点 - STC32G144K246 测试版块,P ...
我只是用了串口工具检测到数据接收不对,这个USB转串口应用太高深了,暂时不想研究!
我现在只想知道为什么串口工具收到的都是6CF,单片机有时候收到6CF(0110 1100 1111),有时候又收到68F(0110 1000 1111),到底是哪里配置不对? T3CLKO定时器溢出翻转输出用示波器测一下频率看看
使用AiCube测试u3 t3 未复现,对比下看看或上传完整工程
ercircle 发表于 2026-1-5 10:51
使用AiCube测试u3 t3 未复现,对比下看看或上传完整工程
好的,我对比一下看看 DebugLab 发表于 2026-1-5 10:36
T3CLKO定时器溢出翻转输出用示波器测一下频率看看
怎么样测?中断函数里面加一个PIN脚翻转? yf8305 发表于 2026-1-5 15:05
怎么样测?中断函数里面加一个PIN脚翻转?不需要开中断
DebugLab 发表于 2026-1-5 16:39
不需要开中断
我用示波器测量了,波形是对的!
晚上我测试了一下例程里面串口3电脑收发程序,能正常发送接收,
不过我现在把波特率降低到2400后正常了,
原因分析:
大概可能是因为通过光耦隔离通讯,导致时序有点问题,
之前8H 32G芯片都有准双向口,不知道是不是这个原因,
看有没有大神来分析分析!
发送用 强推挽,接收用 高阻输入
页:
[1]
2