找回密码
 立即注册
查看: 2803|回复: 10

STC8G1K08模拟串口

[复制链接]

该用户从未签到

11

主题

12

回帖

111

积分

注册会员

积分
111
发表于 2023-5-4 13:26:23 | 显示全部楼层 |阅读模式
请教STC的工程师,STC8G1K08如果想用IO口模拟串口,哪些配置需要注意?从贵司的官网下载的STC15系列使用Timer2接合INT4模拟一个半双工串口例程,
改变头文件#include        <reg52.h>为
#include "STC8Gxxx.h",
改变IO口配置,
sbit P_RX3 = P1^6;        //定义模拟串口接收IO
sbit P_TX3 = P1^7;        //定义模拟串口发送IO
增加了IO口初始化P1M0 &= ~0xc0; P1M1 &= ~0xc0;
但是程序没收到数据,不知哪里配置有问题?
或者你们有STC8G系列模拟串口的例程?
附件是改过的程序,请指点
28-DEMO-使用Timer2接合INT4模拟一个半双工串口.rar (67.06 KB, 下载次数: 207)





回复 送花

使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-5 13:56
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    12

    主题

    259

    回帖

    1592

    积分

    超级版主

    积分
    1592
    发表于 2023-5-5 10:07:37 | 显示全部楼层
    STC8G1K08有直接的串口,不需要用复杂的软件模拟。
    1.png

    电话:0513-55012946 QQ:2195591714  微信:  19952583740
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    11

    主题

    12

    回帖

    111

    积分

    注册会员

    积分
    111
     楼主| 发表于 2023-5-8 10:05:46 | 显示全部楼层
    我是用P1.6和P1.7做的例子,实际使用的是P3.4和P3.5。能辛苦STC的工程师给个P3.4和P3.5的IO口模拟串口的半双工例程吗?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-5 13:56
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    12

    主题

    259

    回帖

    1592

    积分

    超级版主

    积分
    1592
    发表于 2023-5-8 12:02:40 | 显示全部楼层
    STC8G1K08有直接的串口,不需要用复杂的软件模拟。
    目前只有这个范例(STC15的):

    14-模拟串口.rar

    20.96 KB, 下载次数: 239

    电话:0513-55012946 QQ:2195591714  微信:  19952583740
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-4 13:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    1

    主题

    7

    回帖

    69

    积分

    注册会员

    积分
    69
    发表于 2023-5-29 08:24:18 | 显示全部楼层
    有没有遇到上电会误发1~2字节的情况,如何避免误发数据?

    点评

    串口发送时主动的,不发送就不会发,怎么会有误发?接口电路上电进入工作时可能会是低电平一下,对方可能会误收一两个字节,但那不是MCU发的,是你的硬件问题。MCU的串口,上电为高电平或高阻,都不会导致误发的。  详情 回复 发表于 2023-5-29 14:29
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-5 13:56
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    12

    主题

    259

    回帖

    1592

    积分

    超级版主

    积分
    1592
    发表于 2023-5-29 11:01:30 | 显示全部楼层
    您可以用范例测试下!
    电话:0513-55012946 QQ:2195591714  微信:  19952583740
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3044

    回帖

    6863

    积分

    超级版主

    积分
    6863
    发表于 2023-5-29 14:29:42 | 显示全部楼层
    gjf 发表于 2023-5-29 08:24
    有没有遇到上电会误发1~2字节的情况,如何避免误发数据?

    串口发送时主动的,不发送就不会发,怎么会有误发?接口电路上电进入工作时可能会是低电平一下,对方可能会误收一两个字节,但那不是MCU发的,是你的硬件问题。MCU的串口,上电为高电平或高阻,都不会导致误发的。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3044

    回帖

    6863

    积分

    超级版主

    积分
    6863
    发表于 2023-5-29 14:44:06 | 显示全部楼层
    模拟串口方式通常如下:
    1、定时器中断三倍采样接收、发送,一个定时器就可以做一个全双工串口,IO任意用,但是波特率不能太高,不建议超过19200(主频24MHz或以上,定时器中断优先级最高)。当波特率9600时,一个定时可以做4~8个模拟串口,非常可靠的,以前我做工控类串口卡,就是这样做的,一个硬件串口接上位机,3个硬件串口提供高速串口,4~8个模拟全双工串口提供1200~9600的波特率。
    2、用一路PCA接收,一路PCA发送,可以做一个全双工串口,必须使用PCA输入、输出的IO,波特率可以达到115200(主频24MHz或以上,PCA中断优先级最高)。
    3、用两路STC8H、STC32G的PWM做全双工串口,跟上述PCA做的一模一样。

    STC-ISP的范例程序里STC15系列例子就有,已经是十年前写的例程了:
    1.png

    回复 支持 1 反对 0 送花

    使用道具 举报

    该用户从未签到

    4

    主题

    7

    回帖

    58

    积分

    注册会员

    积分
    58
    发表于 2023-9-8 08:43:06 | 显示全部楼层
    梁工 发表于 2023-5-29 14:44
    模拟串口方式通常如下:
    1、定时器中断三倍采样接收、发送,一个定时器就可以做一个全双工串口,IO任意用, ...

    感谢梁工。我用PCA模拟了串口,波特率4800,光耦隔离,实测效果很好。

    点评

    如果用的是慢速光耦(比如PC817、EL357等等),注意速度,4800基本是上限,有加速电路则可以到115200.  详情 回复 发表于 2023-9-8 10:20
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3044

    回帖

    6863

    积分

    超级版主

    积分
    6863
    发表于 2023-9-8 10:20:23 | 显示全部楼层
    bobzone 发表于 2023-9-8 08:43
    感谢梁工。我用PCA模拟了串口,波特率4800,光耦隔离,实测效果很好。

    如果用的是慢速光耦(比如PC817、EL357等等),注意速度,4800基本是上限,有加速电路则可以到115200.
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-20 05:09 , Processed in 0.069986 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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