找回密码
 立即注册
查看: 554|回复: 9

STC8H4K64LCD的串口2数据

[复制链接]

1

主题

3

回帖

15

积分

新手上路

积分
15
发表于 2024-7-12 18:35:34 来自手机 | 显示全部楼层 |阅读模式
大家有碰到STC8H4K64LCD这款的串口2中断接收,死活接收不到数据,发送正常,串口1发送接收都没问题,两个程序一样,用的是官方库使用的口是P1.0和P1.1,还有DMA功能发送也进不了中断,只能使用定时器间隔一段时间,发送一次数据!主要问题就是接受数据不正确?有没有什么解决方案?
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2024-7-12 20:33:19 | 显示全部楼层
STC8H4K64TLCD ?

STC8H4K64TLCD 的程序 和 STC8H8K64U兼容


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2024-7-12 20:34:45 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

1

主题

3

回帖

15

积分

新手上路

积分
15
发表于 2024-7-13 09:19:02 | 显示全部楼层
神*** 发表于 2024-7-12 20:34
STC8系列4组串口同时通信的程序,Modbus 演示程序;可共享T2做波特率发生器 - 串行口,DMA支持的4组串口 ...

谢谢,修改后还是不行,但是发现接收的数据更多,怀疑波特率的问题,果然我把波特率改为9600接收就正常了
回复 支持 反对

使用道具 举报 送花

1

主题

3

回帖

15

积分

新手上路

积分
15
发表于 2024-7-13 09:23:59 | 显示全部楼层
神*** 发表于 2024-7-12 20:34
STC8系列4组串口同时通信的程序,Modbus 演示程序;可共享T2做波特率发生器 - 串行口,DMA支持的4组串口 ...

现在还有一个问题就是我看官方例程上都是串口接收使用DMA需要开启的有串口中断,如果我不开启串口中断的话,开启DMA中断,DMA还能正常使用?因为感觉串口中断使用的太频率了,本来DMA就是为了解决中断频繁的问题,结果相当于又加了个DMA中断

点评

首先,串口即使用115200的波特率,其中断间隔是86.8us,对于MCU来说并不算频繁,所以中断接收不会有问题,可以测试“板凳”发的程序,4个串口同时双工收发的。 其次,使用DMA接收中断,不需要再开串口中断,但是要指  详情 回复 发表于 2024-7-13 16:55
回复 支持 反对

使用道具 举报 送花

1

主题

3

回帖

15

积分

新手上路

积分
15
发表于 2024-7-13 09:47:25 来自手机 | 显示全部楼层
神农鼎 发表于 2024-7-12 20:33
STC8H4K64TLCD ?

STC8H4K64TLCD 的程序 和 STC8H8K64U兼容

我用的就是8H8K的官方程序库!我把波特率降低了,就完全都正常了,可能就是中断太频繁了

点评

跑22.1184MHz,4个串口,每个都115200同时双工收发,占CPU时间不到20%,绝对没问题,你可测试“板凳”发的例程,4个串口同时通信的,100万个字节测试,保证你一个不错一个不丢! 对于现在的MCU而言,串口115200的波  详情 回复 发表于 2024-7-13 16:44
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2024-7-13 15:41:52 | 显示全部楼层
DAM-串口,可以 255个字节以下才产生中断一次
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2024-7-13 16:44:31 | 显示全部楼层
本帖最后由 梁工 于 2024-7-13 16:47 编辑
张*** 发表于 2024-7-13 09:47
我用的就是8H8K的官方程序库!我把波特率降低了,就完全都正常了,可能就是中断太频繁了 ...

跑22.1184MHz,4个串口,每个都115200同时双工收发,占CPU时间不到20%,绝对没问题,你可测试“板凳”发的例程,4个串口同时通信的,100万个字节测试,保证你一个不错一个不丢!
对于现在的MCU而言,串口115200的波特率其中断都是慢速事件(86.6us才中断一次),不算频繁。像STC8051U播放I2S的声音,48KHz采样、96KHz中断更新数据,都轻松拿下,中断一次处理不过1~2us而已(PCM播放无解压缩)。
如果是你改动后的程序出现问题,请详细检查程序逻辑,不要有任何的等待。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2024-7-13 16:55:30 | 显示全部楼层
张*** 发表于 2024-7-13 09:23
现在还有一个问题就是我看官方例程上都是串口接收使用DMA需要开启的有串口中断,如果我不开启串口中断的 ...

首先,串口即使用115200的波特率,其中断间隔是86.8us,对于MCU来说并不算频繁,所以中断接收不会有问题,可以测试“板凳”发的程序,4个串口同时双工收发的。
其次,使用DMA接收中断,不需要再开串口中断,但是要指定DMA接收的字节数(1~256字节),接收的字节数一到,就会进DMA中断。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:322
  • 最近打卡:2025-05-02 10:02:36
已绑定手机

21

主题

487

回帖

1041

积分

金牌会员

积分
1041
发表于 2024-7-13 17:07:52 | 显示全部楼层
DMA传送数据的功能还未用过,关注学习下
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 13:24 , Processed in 0.263163 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表