迪文科技论坛

 找回密码
 立即注册
搜索
查看: 314|回复: 6

【提问】关于DMG64360K030_01WTC二次开发os程序时串口数据和接手

[复制链接]

0

主题

9

回帖

33

积分

新手上路

Rank: 1

积分
33
发表于 2022-2-28 15:06:21 | 显示全部楼层 |阅读模式
本帖最后由 cfs 于 2022-2-28 15:58 编辑

我用DMG64360K030_01WTC二次开发0S的C51程序时发现对串口2发送数据时,总是1包成功1包失败的,就这样这样交叉着,所以我被迫每次发送时都连续发送两包一样的数据包,间隔200ms,串口也确实只接收到1包,看了下串口驱动和发送函数,没有看出什么问题,代码如下,希望可以帮忙解答一下
  1. void UART2_Init(void)
  2. {
  3.     ADCON=0x80;
  4.     SCON0=0x50;
  5.     SREL0H=0x03;        //FCLK/64*(1024-SREL1)
  6.     SREL0L=0xE4;
  7.     ES0=1;
  8.     EA=1;
  9.         uart2_rx_count=0;
  10. }

  11. void UART2_Sendbyte(u8 dat)
  12. {      
  13.      while(uart2_busy==1);      
  14.      uart2_busy=1;
  15.      SBUF0 = dat;        
  16. }


  17. void UART2_SendStr(u8 *pstr,u8 strlen)
  18. {
  19.     if((NULL == pstr)||(0 == strlen))
  20.     {
  21.         return;
  22.     }
  23.     while(strlen--)
  24.     {
  25.         UART2_Sendbyte(*pstr);
  26.         pstr++;
  27.     }  
  28. }
复制代码

本帖子中包含更多资源

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

x
回复

使用道具 举报

0

主题

9

回帖

33

积分

新手上路

Rank: 1

积分
33
 楼主| 发表于 2022-2-28 15:09:55 | 显示全部楼层
另外我的串口接收程序也有问题,总是收不到数据,代码如下
  1. void UART2_ISR_PC(void)    interrupt 4
  2. {
  3.     u8 res=0;
  4.     EA=0;
  5.     if(RI0==1)
  6.     {
  7.         res=SBUF0;
  8.         Uart2_Rx[uart2_rx_count]=res;
  9.         uart2_rx_count++;
  10.         RI0=0;      
  11.     }
  12.     if(TI0==1)
  13.     {
  14.         TI0=0;
  15.         uart2_busy=0;
  16.     }
  17.     EA=1;
  18. }
复制代码
回复

使用道具 举报

0

主题

1276

回帖

5390

积分

论坛元老

Rank: 8Rank: 8

积分
5390
发表于 2022-2-28 15:40:45 | 显示全部楼层
cfs 发表于 2022-2-28 15:09
另外我的串口接收程序也有问题,总是收不到数据,代码如下

看起来没有问题 ,楼主可以把项目文件发上来看一下
回复

使用道具 举报

0

主题

9

回帖

33

积分

新手上路

Rank: 1

积分
33
 楼主| 发表于 2022-2-28 15:59:47 | 显示全部楼层
integer_32 发表于 2022-2-28 15:40
看起来没有问题 ,楼主可以把项目文件发上来看一下

你好,源码已经在附件中上传了,那里的LDC_SEND就是向串口2 发送数据,连续发送两次就是因为第一次发不出去
回复

使用道具 举报

0

主题

1276

回帖

5390

积分

论坛元老

Rank: 8Rank: 8

积分
5390
发表于 2022-3-1 13:40:05 | 显示全部楼层
cfs 发表于 2022-2-28 15:59
你好,源码已经在附件中上传了,那里的LDC_SEND就是向串口2 发送数据,连续发送两次就是因为第一次发不出 ...

楼主看下数据这样是否是正确的? 我这边测试 并不需要发送两次,注释一个也能发送出来

本帖子中包含更多资源

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

x
回复

使用道具 举报

0

主题

9

回帖

33

积分

新手上路

Rank: 1

积分
33
 楼主| 发表于 2022-3-1 13:45:42 | 显示全部楼层
integer_32 发表于 2022-3-1 13:40
楼主看下数据这样是否是正确的? 我这边测试 并不需要发送两次,注释一个也能发送出来  ...

你好,方便加一下QQ吗,我的QQ是:995143740 ,我把我这边的DWIN_SET文件夹发给你试一下
回复

使用道具 举报

0

主题

1276

回帖

5390

积分

论坛元老

Rank: 8Rank: 8

积分
5390
发表于 2022-3-1 13:47:30 | 显示全部楼层
cfs 发表于 2022-3-1 13:45
你好,方便加一下QQ吗,我把我这边的DWIN_SET文件夹发给你试一下

400 018 9008, 在这个企业QQ上咨询就可以了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-7 07:21 , Processed in 0.031772 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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