发新帖本帖赏金 10.00元(功能说明)我要提问
12下一页
返回列表
[STC单片机]

请教一下STC8G1K08单片机串口1不能切换引脚问题

[复制链接]
13335|24
手机看帖
扫描二维码
随时随地手机跟帖
henangongda123|  楼主 | 2021-6-18 09:08 | 显示全部楼层 |阅读模式
使用的骗子型号是:STC8H1K0838I-TSSOP20,串口1想用P3.6/P3.7引脚,默认的P3.0/P3.1用作下载程序用,现在发现切换串口1到P3.6/P3.7端口后,接收没有问题,能进中断,就是发送端口没信号,一直高电平,不知道咋回事!不切换的话,默认P3.0/P3.1端口就可以正常使用。程序下面贴~

使用特权

评论回复

相关帖子

henangongda123|  楼主 | 2021-6-18 09:09 | 显示全部楼层
            /********* UART1初始化操作 **********/
/***********************************************************
函数名:UART1_Init()
功  能:串口1初始化
参  数:无
返回值:无
/**********************************************************/
void UART1_Init(void)
{
//        P_SW1 |= 0x40;              //串口1引脚切换到P3.6,P3.7
        SCON |= 0x50;               //串口1选择模式1(8位数据位,可变波特率),使能UART1接收
        T2L = BRT;
        T2H = BRT>>8;               //设置T2定时器波特率为9600(主频12MHz)
        AUXR = 0x15;                //选择T2定时器作为波特率发射器,并开启T2定时器(1T模式)
        ES = 1;                     //使能UART1接收/发送中断
        EA = 1;                     //使能全局中断
}
/***********************************************************
函数名:UART1_Isr()
功  能:串口1接收/发送中断函数
参  数:无
返回值:无
/**********************************************************/
void UART1_Isr(void) interrupt 4
{
        uchar Receive_Byte;
        if(RI)                      //串口1接收中断置位
  {
                RI = 0;                   //清除接收中断标志位RI
                Receive_Byte = SBUF;      //读取串口一字节接收数据
                uart_receive_input(Receive_Byte);//接收数据传入mcu_api.c文件
//                LED=~LED;
  }
        if(TI)                      //串口1发送中断置位
  {
    TI = 0;                   //清除发送中断标志位TI
//                LED=~LED;
  }
}

使用特权

评论回复
henangongda123|  楼主 | 2021-6-18 09:10 | 显示全部楼层
P3.0/P3.1、P3.6/P3.7端口都没有设置,默认处理,本来想切换到P1.6/P1.7端口试试的,但是这两个引脚接了无源晶振,用不了。

使用特权

评论回复
henangongda123|  楼主 | 2021-6-18 09:11 | 显示全部楼层
有哪位大神能指点一下不?5+元赏金

使用特权

评论回复
ayb_ice| | 2021-6-18 09:22 | 显示全部楼层
henangongda123 发表于 2021-6-18 09:11
有哪位大神能指点一下不?5+元赏金

将P3.7设置为推挽输出

使用特权

评论回复

打赏榜单

henangongda123 打赏了 5.00 元 2021-06-19
理由:感谢提醒!

henangongda123|  楼主 | 2021-6-18 09:45 | 显示全部楼层
ayb_ice 发表于 2021-6-18 09:22
将P3.7设置为推挽输出

Why?

使用特权

评论回复
ayb_ice| | 2021-6-18 09:55 | 显示全部楼层

使用特权

评论回复
coody| | 2021-6-18 10:53 | 显示全部楼层
没问题啊,我经常切换到P3.6 P3.7,均设置为准双向口(也可以开通额外的3.7K电阻)。

使用特权

评论回复
henangongda123|  楼主 | 2021-6-18 10:54 | 显示全部楼层

还没空试,晚点我试试

使用特权

评论回复
henangongda123|  楼主 | 2021-6-18 10:55 | 显示全部楼层
coody 发表于 2021-6-18 10:53
没问题啊,我经常切换到P3.6 P3.7,均设置为准双向口(也可以开通额外的3.7K电阻)。 ...

默认,就是不设置端口,是不是准双向口?

使用特权

评论回复
567| | 2021-6-18 15:13 | 显示全部楼层
复位后默认是高阻输入。

另外,程序如果调不好,考虑把芯片卖掉吗?

使用特权

评论回复
coody| | 2021-6-18 15:51 | 显示全部楼层
henangongda123 发表于 2021-6-18 10:55
默认,就是不设置端口,是不是准双向口?

STC8G、STC8H系列,IO上电默认状态:除了P3.0 P3.1是准双向口输出高之外,其余IO均位高阻,但内部端口锁存输出高电平。所以,你要设置IO。我从来不管默认,都是自己初始化设置IO和用到的寄存器,要养成这个好习惯。

使用特权

评论回复

打赏榜单

henangongda123 打赏了 5.00 元 2021-06-19
理由:说好的!

coody| | 2021-6-18 15:51 | 显示全部楼层
567 发表于 2021-6-18 15:13
复位后默认是高阻输入。

另外,程序如果调不好,考虑把芯片卖掉吗?

这个太直接了,呵呵

使用特权

评论回复
henangongda123|  楼主 | 2021-6-18 16:57 | 显示全部楼层
567 发表于 2021-6-18 15:13
复位后默认是高阻输入。

另外,程序如果调不好,考虑把芯片卖掉吗?

咋了 你想要这个片子?我就5片

使用特权

评论回复
henangongda123|  楼主 | 2021-6-18 16:59 | 显示全部楼层
coody 发表于 2021-6-18 15:51
STC8G、STC8H系列,IO上电默认状态:除了P3.0 P3.1是准双向口输出高之外,其余IO均位高阻,但内部端口锁 ...

这样啊 我还以为串口接管IO后会自动把IO设置好,晚上有空验证一下,是不是这个IO没设置的原因

使用特权

评论回复
henangongda123|  楼主 | 2021-6-19 11:58 | 显示全部楼层
可以结贴了,STC8G1K08单片机切换P3.6/P3.7端口为串口1输出的时候确实要先设置端口为准双向口后才会有输出

使用特权

评论回复
567| | 2021-6-19 14:31 | 显示全部楼层
henangongda123 发表于 2021-6-18 16:57
咋了 你想要这个片子?我就5片

就5片还搞什么程序,等程序搞好了买不到程序不就白瞎了吗?

使用特权

评论回复
henangongda123|  楼主 | 2021-6-19 15:22 | 显示全部楼层
567 发表于 2021-6-19 14:31
就5片还搞什么程序,等程序搞好了买不到程序不就白瞎了吗?

我知道 大货肯定不用这个型号,这个是之前免费送我的样品,大货用8引脚的

使用特权

评论回复
567| | 2021-6-19 15:45 | 显示全部楼层
henangongda123 发表于 2021-6-19 15:22
我知道 大货肯定不用这个型号,这个是之前免费送我的样品,大货用8引脚的 ...

8引脚的有多少?考虑卖吗?

使用特权

评论回复
henangongda123|  楼主 | 2021-6-19 16:55 | 显示全部楼层
567 发表于 2021-6-19 15:45
8引脚的有多少?考虑卖吗?

没有 用完了 他们有现货啊 只是价格高而已

使用特权

评论回复
发新帖 本帖赏金 10.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

2116

帖子

19

粉丝