找回密码
 立即注册
查看: 1991|回复: 23

STC8H 试验箱串口2和串口3通讯请教。

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-28 12:55:00

23

主题

296

回帖

1160

积分

金牌会员

积分
1160
发表于 2024-5-25 16:53:42 | 显示全部楼层 |阅读模式
查看提供的例子中,串口2 和串口3的读数据分别存在对应的缓存数组
main函数中串口3发送一个字符串,收到的用串口2输出。

想了半天串口3发送的数据存在哪了?怎么串口2的缓存数组可以输出?
是不是可以理解为,串口3发送的数据,串口2 和串口3在中断函数中,两个缓存数组里边都存有!
截图202405251631304078.jpg
截图202405251631449229.jpg
回复

使用道具 举报 送花

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

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-5-25 19:08:39 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-5-25 17:12:25 | 显示全部楼层
串口3发送的字符串在flash里。。。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-5-25 17:13:23 | 显示全部楼层
2.串口2的缓冲区为啥不能输出。。。程序里的需求不就是接收的什么原样返回么?
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3191

回帖

4872

积分

论坛元老

积分
4872
发表于 2024-5-25 17:55:12 来自手机 | 显示全部楼层
串口都有相对应的缓存区,如S2BUF,把缓存发送到其他串口不就可以转发了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-28 12:55:00

23

主题

296

回帖

1160

积分

金牌会员

积分
1160
发表于 2024-5-25 18:50:38 | 显示全部楼层
本帖最后由 lezjin 于 2024-5-25 18:56 编辑
_奶*** 发表于 2024-5-25 17:12
串口3发送的字符串在flash里。。。

我的意思是发送到哪里了?这个字符串是不是同时发送到串口2 和串口3的缓存,这样才能解释串口2 的缓存里边有形同的数据
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-28 12:55:00

23

主题

296

回帖

1160

积分

金牌会员

积分
1160
发表于 2024-5-25 18:51:35 | 显示全部楼层
_奶*** 发表于 2024-5-25 17:13
2.串口2的缓冲区为啥不能输出。。。程序里的需求不就是接收的什么原样返回么? ...

对的,意思是串口2  、3 的缓存都接收到了相同的字符串是吧。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-28 12:55:00

23

主题

296

回帖

1160

积分

金牌会员

积分
1160
发表于 2024-5-25 18:55:25 | 显示全部楼层
本帖最后由 lezjin 于 2024-5-25 18:56 编辑
so*** 发表于 2024-5-25 17:55
串口都有相对应的缓存区,如S2BUF,把缓存发送到其他串口不就可以转发了

我开始也是这么理解的,找了半天S3BUF 到S2BUF的代码,并没有找到,
如图片中的两个中断函数和主函数,没有这方面的代码
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-28 12:55:00

23

主题

296

回帖

1160

积分

金牌会员

积分
1160
发表于 2024-5-26 18:34:24 | 显示全部楼层

今天试了一下仿真,
都是卡在串口2发送忙标志位,
中断函数中清零仿真跳不进去,
设置断点全速运行,也无法跳进去,
这个有办法解决吗
截图202405261837368537.jpg
截图202405261838023322.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2024-5-27 09:57:04 | 显示全部楼层
lez*** 发表于 2024-5-26 18:34
今天试了一下仿真,
都是卡在串口2发送忙标志位,
中断函数中清零仿真跳不进去,

你用的是软件模拟仿真,跟硬件没有关联,产生不了硬件中断,所以你会卡在发送函数里面。
软件模拟仿真最明显的现象是执行过的代码左侧变成绿色。
硬件仿真操作步骤可参考以下演示视频:
https://www.stcaimcu.com/plugin. ... e_7ree=1&id_7ree=63

例程串口3每秒钟发送一串固定数据:PrintString3("STC8H8K64U UART3-UART2 Test Programme!\r\n");  //UART3发送一个字符串
实验箱硬件上将串口2与串口3连接,这样串口3发送数据就会被串口2接收,在串口2中断里面将收到的数据存入RX2_Buffer缓冲区里面。然后在主循环里面打印RX2_Buffer的内容,就可以将从串口3收到的数据打印出来。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 20:40 , Processed in 0.153170 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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