找回密码
 立即注册
查看: 266|回复: 4

求助!STC8H3K64S4的P3.1端口设置和通讯问题

[复制链接]

该用户从未签到

1

主题

2

回帖

33

积分

新手上路

积分
33
发表于 2023-10-10 10:03:53 | 显示全部楼层 |阅读模式
应国产化要求,从silicon的C8051F系列转用STC的片子。

STC的片子十几年前用过,性能优异。
但是这几天,有个及其简单的GPIO设置始终没搞明白。
表现为三个问题:
//-------------------------------------
问题1:P3.0和P3.1作为下载和通讯口,P3.1是要求设置为推挽,如下:
GPIO_InitTypeDef        GPIO_InitStructure;


GPIO_InitStructure.Pin  =GPIO_Pin_1;
GPIO_InitStructure.Mode = GPIO_OUT_PP;
GPIO_Inilize(GPIO_P3,&GPIO_InitStructure);

串口TX有输出。
但是如果这样设置:
P3M1 &= ~GPIO_Pin_1;P3M0 |= GPIO_Pin_1;

或者这样
P3M0 |=0x02; P3M1 &= ~0x02;
甚至这样 P3M0 |=0x02; P3M1 &= 0xFD;

串口Tx无输出。
又但是这样又有输出:

GPIO_InitTypeDef        GPIO_InitStructure;

GPIO_InitStructure.Pin  =GPIO_Pin_1;

P3M1 &= ~GPIO_InitStructure.Pin;P3M0 |=  GPIO_InitStructure.Pin;

//-------------------------------------
问题2:其他P3口需要推挽输出

GPIO_InitTypeDef        GPIO_InitStructure;


GPIO_InitStructure.Pin  =GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.Mode = GPIO_OUT_PP;
GPIO_Inilize(GPIO_P3,&GPIO_InitStructure);


串口Tx无输出。

//-------------------------------
问题3:P5口的P5.4推挽

GPIO_InitTypeDef        GPIO_InitStructure;


GPIO_InitStructure.Pin  =GPIO_Pin_1;
GPIO_InitStructure.Mode = GPIO_OUT_PP;
GPIO_Inilize(GPIO_P3,&GPIO_InitStructure);




GPIO_InitStructure.Pin  = GPIO_Pin_4;               
GPIO_InitStructure.Mode = GPIO_OUT_PP;       
GPIO_Inilize(GPIO_P5,&GPIO_InitStructure);
串口Tx无输出。


但是这样:

GPIO_InitTypeDef        GPIO_InitStructure;


GPIO_InitStructure.Pin  =GPIO_Pin_1;
GPIO_InitStructure.Mode = GPIO_OUT_PP;
GPIO_Inilize(GPIO_P3,&GPIO_InitStructure);


P5M0 = 0x10; P5M1 = 0x00;

串口Tx有输出。
//有输出的情况如下:ADC0,ADC1,ADC2,ADC3,ADC6,数据正常。

截图202310101000122984.jpg



回复 送花

使用道具 举报

该用户从未签到

1

主题

2

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2023-10-10 10:10:39 | 显示全部楼层
03-多路ADC转换-串口2发送.zip (352.41 KB, 下载次数: 10)
回复 支持 反对 送花

使用道具 举报

该用户从未签到

551

主题

9428

回帖

1万

积分

管理员

积分
14003
发表于 2023-10-10 13:17:04 | 显示全部楼层
1,输出一般设置成强推挽输出
2,输入一般设置成高阻输入,如是模拟量输入,建议关闭数字输入
截图202310101316428691.jpg
深圳国芯人工智能有限公司-工具软件 (stcai.com)


截图202310101315217930.jpg

截图202310101314466237.jpg

截图202310101316071944.jpg


回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    奋斗
    8 小时前
  • 签到天数: 140 天

    [LV.7]常住居民III

    26

    主题

    1335

    回帖

    4155

    积分

    论坛元老

    积分
    4155
    发表于 2023-10-11 09:44:51 | 显示全部楼层
    你的问题在于串口1的波特率发生器没有设置,只要把屏蔽的这行打开就行了:

    截图202310110942531755.jpg

    串口2固定使用定时器2作为波特率发生器,所以可以不用设置,但是其它串口都需要设置。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    2

    回帖

    33

    积分

    新手上路

    积分
    33
     楼主| 发表于 2023-10-11 13:42:19 | 显示全部楼层
    乘风飞扬 发表于 2023-10-11 09:44
    你的问题在于串口1的波特率发生器没有设置,只要把屏蔽的这行打开就行了:

    非常感谢。不好意思。
    我这边把例程修改了,config里面定义了UART1(Rx=P3.0和Tx=P3.1),标题没修改。
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-14 17:04 , Processed in 0.066224 second(s), 48 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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