找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11316|回复: 23
收起左侧

STC15w4k58s4单片机4串口同时收发例程

  [复制链接]
ID:217820 发表于 2017-7-13 14:13 | 显示全部楼层 |阅读模式
STC15w4k58s4 芯片的4串口同时收发例程

0.png


单片机源程序如下:
  1. #include "intrins.H"
  2. #include "uart.H"
  3. #define uchar unsigned  char
  4. #define uint  unsigned   int

  5. uchar uart1buf[6]={0xa5,0x5a,0x4a,0xf8,0xff,0xff};
  6. uchar uart2buf[6]={0xa5,0x5a,0x4a,0xf8,0xff,0xff};
  7. uchar uart3buf[6]={0xa5,0x5a,0x4a,0xf8,0xff,0xff};
  8. uchar uart4buf[6]={0xa5,0x5a,0x4a,0xf8,0xff,0xff};
  9. uchar uart2_i,uart3_i,uart4_i;
  10. bit flag2=0,flag3=0,flag4=0;         //flag of reveived new packs  收到新数据包标志
  11. void delay(uint k)       
  12. {                                               
  13. uint i,j;                               
  14. for(i=0;i<k;i++)
  15. {                       
  16. for(j=0;j<121;j++)                       
  17. {;}}                                               
  18. }
  19. void main()
  20. {
  21. uchar i;
  22. uint l1,l2,l3;
  23. Uart1Init();
  24. Uart2Init();
  25. Uart3Init();
  26. Uart4Init();
  27. while(1)
  28. {
  29.   if(flag3==1||flag2==1||flag4==1)
  30.   {
  31.    flag4=0;
  32.    flag3=0;
  33.    flag2=0;
  34.    for(i=0;i<6;i++)
  35.    uart1buf[i]=uart3buf[i];
  36.    l1=256*uart2buf[2]+uart2buf[3];
  37.    l1=l1/10*7;
  38.    l2=256*uart3buf[2]+uart3buf[3];
  39.    l2=l2/10*7;
  40.    l3=256*uart4buf[2]+uart4buf[3];
  41.    if(l1<=l2&&l1<=l3)
  42.    {
  43.    uart1buf[2]=l1/256;
  44.    uart1buf[3]=l1%256;
  45.    }
  46.    if(l2<=l1&&l2<=l3)
  47.    {
  48.    uart1buf[2]=l2/256;
  49.    uart1buf[3]=l2%256;
  50.    }
  51.    if(l3<=l1&&l3<=l2)
  52.    {
  53.    uart1buf[2]=uart4buf[2];
  54.    uart1buf[3]=uart4buf[3];   
  55.    }
  56.    if(uart1buf[2]>=0xea)
  57.    {
  58.    uart1buf[2]=0xea;
  59.    uart1buf[3]=0x00;
  60.    }
  61.    for(i=0;i<6;i++)
  62.    UART1_SendData(uart1buf[i]);
  63.   }
  64. //   delay(500);
  65. }
  66. }

  67. void Uart2() interrupt 8 using 1
  68. {
  69.     if (S2CON & S2RI)
  70.     {
  71.         S2CON &= ~S2RI;         //清除S2RI位
  72.                 uart2buf[uart2_i]=S2BUF;
  73.                 uart2_i++;
  74.                 if(uart2_i==6)
  75.                 {
  76.                 uart2_i=0;
  77.                 flag2=1;
  78.                 if(uart2buf[2]==0&&uart2buf[3]==0)
  79.                 {
  80.                  uart2buf[2]==0x2a;
  81.                  uart2buf[3]==0xf8;
  82.                 }
  83.                 }
  84.     }
  85.     if (S2CON & S2TI)
  86.     {
  87.         S2CON &= ~S2TI;         //清除S2TI位
  88.     }
  89. }
  90. void Uart3() interrupt 17 using 1
  91. {
  92.     if (S3CON & S3RI)
  93.     {
  94.         S3CON &= ~S3RI;         //清除S2RI位
  95.                 uart3buf[uart3_i]=S3BUF;
  96.                 uart3_i++;
  97.                 if(uart3_i==6)
  98.                 {
  99.                 uart3_i=0;
  100.                 flag3=1;
  101.                 if(uart3buf[2]==0&&uart3buf[3]==0)
  102.                 {
  103.                  uart3buf[2]==0x2a;
  104.                  uart3buf[3]==0xf8;
  105.                 }
  106.                 }
  107.     }
  108.     if (S3CON & S3TI)
  109.     {
  110.         S3CON &= ~S3TI;         //清除S3TI位
  111.     }
  112. }
  113. void Uart4() interrupt 18 using 1
  114. {
  115.     if (S4CON & S4RI)
  116.     {
  117.         S4CON &= ~S4RI;         //清除S2RI位
  118.                 uart4buf[uart4_i]=S4BUF;
  119. ……………………

  120. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
2017.06.23 四串口.rar (77.06 KB, 下载次数: 298)

评分

参与人数 2黑币 +53 收起 理由
qjzyx + 3
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:219418 发表于 2017-7-13 22:02 | 显示全部楼层
谢谢分享,好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:140302 发表于 2017-8-15 10:33 | 显示全部楼层
谢谢分享资料!
回复

使用道具 举报

ID:232129 发表于 2017-9-9 19:34 | 显示全部楼层
好东西 谢谢
回复

使用道具 举报

ID:247609 发表于 2017-11-9 10:46 | 显示全部楼层
多谢分享!
回复

使用道具 举报

ID:259264 发表于 2018-2-8 10:14 | 显示全部楼层
多谢分享!
回复

使用道具 举报

ID:243748 发表于 2018-2-8 21:55 来自手机 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:283970 发表于 2018-2-13 16:18 | 显示全部楼层
谢谢分享,好好好
回复

使用道具 举报

ID:266116 发表于 2018-2-13 20:32 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

ID:290464 发表于 2018-4-8 22:15 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:165053 发表于 2018-4-27 16:46 | 显示全部楼层
学习一下!
回复

使用道具 举报

ID:399086 发表于 2018-9-17 16:10 | 显示全部楼层
好东西  
回复

使用道具 举报

ID:389901 发表于 2018-11-17 10:46 | 显示全部楼层
谢谢分享,
回复

使用道具 举报

ID:436827 发表于 2018-11-30 21:34 | 显示全部楼层
学习了
回复

使用道具 举报

ID:471464 发表于 2019-1-21 22:37 | 显示全部楼层
正好在看这个 ,谢谢分享
回复

使用道具 举报

ID:471464 发表于 2019-1-21 22:40 | 显示全部楼层
很高兴看到这个,谢谢分享
回复

使用道具 举报

ID:492594 发表于 2019-3-17 15:41 | 显示全部楼层
刚好可以用到,谢谢楼主
回复

使用道具 举报

ID:485871 发表于 2019-3-18 20:25 | 显示全部楼层
希望有用,看不太全
回复

使用道具 举报

ID:292815 发表于 2019-4-14 21:21 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

ID:292815 发表于 2019-4-16 00:58 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:234782 发表于 2019-7-8 11:56 | 显示全部楼层
代码注释太少了
回复

使用道具 举报

ID:490521 发表于 2019-11-10 19:55 | 显示全部楼层
有用吗?
回复

使用道具 举报

ID:358091 发表于 2019-11-12 00:44 | 显示全部楼层
这个程序有人测试过吗?
回复

使用道具 举报

ID:640078 发表于 2019-11-12 08:37 | 显示全部楼层
感谢分享!
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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