迪文科技论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: frankpyq

【提问】使用EKT043开发板串口3,中断号是多少啊?

[复制链接]

11

主题

79

回帖

640

积分

高级会员

Rank: 4

积分
640
发表于 2021-1-27 15:13:39 | 显示全部楼层
integer_32 发表于 2021-1-27 15:05
楼主在屏上测试过吗或者你把等待 uart3_busy 的那两行注释掉看看?

中断中请零
湖南迪弘科技有限公司
联系人:文彧15576128088
地址:迪文湖南科技园 5栋7楼
回复

使用道具 举报

0

主题

1276

回帖

5456

积分

论坛元老

Rank: 8Rank: 8

积分
5456
发表于 2021-1-27 16:17:45 | 显示全部楼层

受教了, 感谢。
回复

使用道具 举报

1

主题

15

回帖

84

积分

注册会员

Rank: 2

积分
84
QQ
 楼主| 发表于 2021-1-27 20:32:26 | 显示全部楼层
改成下面的,可以发送:
判断发送中断标志位改为200us延时;
void u3_send_bytes(u8 *bytes,u16 len)
{
        data u8 i;
       
//        ES0 = 0;                //先关闭串口2中断
        ClearBits(IEN2,BIT0);//IEN2.0
        for(i=0;i<len;i++)
        {
                SBUF1 = bytes[i];
//                while((SCON1&BIT1)==0);//TI1--SCON1.1
//                ClearBits(SCON1,BIT1);//SCON1.1--清除SCON1位标志需要连续写2次
//                ClearBits(SCON1,BIT1);//SCON1.1

                sys_delay_about_us(200);
        }
//        ES0 = 1;        //再打开中断
        SetBits(IEN2,BIT0);//IEN2.0
        sys_delay_about_us(200);
}

为什么判断标志位就不能发送呢?很奇怪,期待官方专业的解释!
回复

使用道具 举报

1

主题

15

回帖

84

积分

注册会员

Rank: 2

积分
84
QQ
 楼主| 发表于 2021-1-27 20:36:26 | 显示全部楼层
粘贴一下官方资料描述。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

1

主题

15

回帖

84

积分

注册会员

Rank: 2

积分
84
QQ
 楼主| 发表于 2021-1-27 20:57:21 | 显示全部楼层
如下方式,也测试了,只能发送一个字节;
void u3_send_bytes(u8 *bytes,u16 len)
{
        data u8 i;
       
//        ES0 = 0;                //先关闭串口2中断
//        ClearBits(IEN2,BIT0);//IEN2.0
        for(i=0;i<len;i++)
        {
            SBUF1 = bytes[i];
                uart3_busy=1;
                while(uart3_busy==1);

//                while((SCON1&BIT1)==0);//TI1--SCON1.1
//                ClearBits(SCON1,BIT1);//SCON1.1--清除SCON1位标志需要连续写2次
//                ClearBits(SCON1,BIT1);//SCON1.1

//                sys_delay_about_us(200);
        }
//        ES0 = 1;        //再打开中断
//        SetBits(IEN2,BIT0);//IEN2.0
//        sys_delay_about_us(200);
}

//串口3收发共用一个中断号
void UART3_ISR_PC(void) interrupt 16
{
        ClearBits(SCON1,BIT1);//SCON1.1--清除SCON1位标志需要连续写2次
        ClearBits(SCON1,BIT1);//SCON1.1
        uart3_busy=0;
}

根本就没进中断清零,SCON1.1硬件不置位;

回复

使用道具 举报

0

主题

1276

回帖

5456

积分

论坛元老

Rank: 8Rank: 8

积分
5456
发表于 2021-1-29 09:52:37 | 显示全部楼层
frankpyq 发表于 2021-1-27 20:57
如下方式,也测试了,只能发送一个字节;
void u3_send_bytes(u8 *bytes,u16 len)
{

这是之前贴的串口3 发送函数的运行效果,确实是中断中置位,至于判断进没进中断也很简单, 中断中用其他串口发送一个数据出来如果能收到 就说明进了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

1

主题

15

回帖

84

积分

注册会员

Rank: 2

积分
84
QQ
 楼主| 发表于 2021-1-30 10:31:27 | 显示全部楼层
楼上的兄台,能把串口3的初始化还有发送函数代码贴出来么,谢啦!
回复

使用道具 举报

0

主题

1276

回帖

5456

积分

论坛元老

Rank: 8Rank: 8

积分
5456
发表于 2021-2-1 09:17:37 | 显示全部楼层
代码在附件中

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

1

主题

15

回帖

84

积分

注册会员

Rank: 2

积分
84
QQ
 楼主| 发表于 2021-2-4 16:52:15 | 显示全部楼层
本帖最后由 frankpyq 于 2021-2-4 16:54 编辑

上面的程序,怎么编译不了啊。

1.bat是什么程序啊?
我把这句话删除了,编译通过,下载到板子,串口3依然没输出啊?

纳闷了!
还是我那个延时200us的能正常输出。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

2

主题

680

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
13866
发表于 2021-5-18 11:25:23 | 显示全部楼层
frankpyq 发表于 2021-2-4 16:52
上面的程序,怎么编译不了啊。

1.bat是什么程序啊?

您好,这边没有找到串口3的源码,建议您使用串口4(附源码)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2025-7-13 18:36 , Processed in 0.022681 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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