找回密码
 立即注册
查看: 2208|回复: 16

STC8G2K64S4芯片的串口2 串口3使用准双向口输出不正常 使用推挽输出时有疑问

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2024-07-12 18:14:20

3

主题

18

回帖

111

积分

注册会员

积分
111
发表于 2023-11-6 21:16:11 | 显示全部楼层 |阅读模式
STC8G2K64S4芯片的串口2 串口3使用准双向口输出不正常 使用推挽输出时有疑问
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2024-07-12 18:14:20

3

主题

18

回帖

111

积分

注册会员

积分
111
发表于 2023-11-6 21:17:35 | 显示全部楼层
本帖最后由 夕口山关 于 2023-11-6 21:23 编辑

2.png 1.png 通道0是串口2 通道1是串口3 串口2的高电平全部只有20ns 串口3高电平全部只有260ns
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2024-07-12 18:14:20

3

主题

18

回帖

111

积分

注册会员

积分
111
发表于 2023-11-6 21:22:14 | 显示全部楼层
3.png 4.png 通道0是串口2 通道1是串口3 串口2的高电平全部只有180ns 串口3高电平全部只有20ns
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2024-07-12 18:14:20

3

主题

18

回帖

111

积分

注册会员

积分
111
发表于 2023-11-6 21:26:38 | 显示全部楼层
本帖最后由 夕口山关 于 2023-11-6 21:28 编辑

5.png 6.png 通道0是串口2 通道1是串口3 串口2是115200 串口3是9600

根据

        if(GPIO == GPIO_P0)
        {
                if(GPIOx->Mode == GPIO_PullUp)                P0M1 &= ~GPIOx->Pin,        P0M0 &= ~GPIOx->Pin;         //上拉准双向口
                if(GPIOx->Mode == GPIO_HighZ)                        P0M1 |=  GPIOx->Pin,        P0M0 &= ~GPIOx->Pin;         //浮空输入
                if(GPIOx->Mode == GPIO_OUT_OD)                P0M1 |=  GPIOx->Pin,        P0M0 |=  GPIOx->Pin;         //开漏输出
                if(GPIOx->Mode == GPIO_OUT_PP)                P0M1 &= ~GPIOx->Pin,        P0M0 |=  GPIOx->Pin;         //推挽输出
        }
使用最下面的
//        P0_MODE_OUT_PP(P00);
//        P1_MODE_OUT_PP(P10);
高电平也是只有很短的时间

这几种方式不是等价的吗 为什么只有用
        GPIO_InitTypeDef        GPIO_InitStructure;                //结构定义
        GPIO_InitStructure.Pin  = GPIO_Pin_0 | GPIO_Pin_1;                //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7
        GPIO_InitStructure.Mode = GPIO_OUT_PP;        //指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
        GPIO_Inilize(GPIO_P1,&GPIO_InitStructure);        //初始化
的方式才能正常使用? 求解

还有串口1可以用准双向口 串口2 和串口3为什么不能用准双向口?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:99
  • 最近打卡:2025-06-16 09:28:47

733

主题

1万

回帖

1万

积分

管理员

积分
16651
发表于 2023-11-6 23:28:46 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2024-07-12 18:14:20

3

主题

18

回帖

111

积分

注册会员

积分
111
发表于 2023-11-7 09:20:40 | 显示全部楼层
这个是示例代码 用于复现

demo.zip

741.98 KB, 下载次数: 97

示例代码

点评

从来没有见过这种赋值方式 P30、P31是定义的sfr,在这里不能当常数使用 否则最终的赋值必然错误 [attachimg]26111[/attachimg]  详情 回复 发表于 2023-11-7 12:29
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:57
  • 最近打卡:2025-06-16 09:23:00

26

主题

1037

回帖

3946

积分

超级版主

积分
3946
发表于 2023-11-7 12:29:57 | 显示全部楼层
夕口*** 发表于 2023-11-7 09:20
这个是示例代码 用于复现



从来没有见过这种赋值方式
P30、P31、P10、P11等都是定义的sfr,在这里不能当常数使用
否则最终的赋值必然错误
截图202311071228214452.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-11-7 12:45:47 | 显示全部楼层

寄存器是这么用的

截图202311071244355718.jpg


截图202311071245155947.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2024-07-12 18:14:20

3

主题

18

回帖

111

积分

注册会员

积分
111
发表于 2023-11-7 14:34:38 | 显示全部楼层
zh*** 发表于 2023-11-7 12:29
从来没有见过这种赋值方式
P30、P31、P10、P11等都是定义的sfr,在这里不能当常数使用
否则最终的赋值必 ...

7.png 我是根据这里这样直接赋值的

点评

GPIOx->Pin的值是每个I/O的bit mask,定义如下 [attachimg]26137[/attachimg] 所以范例这有赋值是没问题的  详情 回复 发表于 2023-11-7 15:00
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:57
  • 最近打卡:2025-06-16 09:23:00

26

主题

1037

回帖

3946

积分

超级版主

积分
3946
发表于 2023-11-7 15:00:57 | 显示全部楼层
夕口*** 发表于 2023-11-7 14:34
我是根据这里这样直接赋值的

GPIOx->Pin的值是每个I/O的bit mask,定义如下
截图202311071500071879.jpg

所以范例这样赋值是没问题的
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-17 03:37 , Processed in 0.346002 second(s), 106 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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