OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3989|回复: 16

串口

[复制链接]

24

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2016-11-25
在线时间
93 小时
发表于 2017-4-13 12:59:43 | 显示全部楼层 |阅读模式
1金钱







如何把串口接收的数据在tft屏上显示?这样写可以吗?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
279
金钱
279
注册时间
2015-10-5
在线时间
27 小时
发表于 2017-4-13 14:20:16 | 显示全部楼层
我还以为没加载出来,哥你没把图片贴出来吧
肯定地告诉你,是可以的
回复

使用道具 举报

8

主题

182

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
422
金钱
422
注册时间
2017-3-8
在线时间
114 小时
发表于 2017-4-13 15:32:13 | 显示全部楼层
怎样写的?
回复

使用道具 举报

24

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2016-11-25
在线时间
93 小时
 楼主| 发表于 2017-4-13 16:32:27 | 显示全部楼层

这个是图片
0R0`6K%}(QL`YO[QDPV(Q3J.png
8_RB[@RU@U{Y~P7G{ANCH7O.png
回复

使用道具 举报

24

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2016-11-25
在线时间
93 小时
 楼主| 发表于 2017-4-13 16:33:14 | 显示全部楼层
461450651 发表于 2017-4-13 14:20
我还以为没加载出来,哥你没把图片贴出来吧
肯定地告诉你,是可以的

我重新发了,你看看
回复

使用道具 举报

1

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2017-3-6
在线时间
35 小时
发表于 2017-4-13 16:38:17 | 显示全部楼层
思路大致是没问题的,但我不明白你为什么要在主循环中不停申明usart3中断子函数。
回复

使用道具 举报

24

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2016-11-25
在线时间
93 小时
 楼主| 发表于 2017-4-13 16:58:16 | 显示全部楼层
zy1234536 发表于 2017-4-13 16:38
思路大致是没问题的,但我不明白你为什么要在主循环中不停申明usart3中断子函数。

可以不用吗?那我为什么感觉串口接收不到传感器输出的数据了?你帮我看看中断函数有没有问题。
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2017-4-13 17:39:16 | 显示全部楼层
中断里给个计数器,计数到8判断一次你的数据接收
fff.jpg
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165580
金钱
165580
注册时间
2010-12-1
在线时间
2118 小时
发表于 2017-4-13 18:51:31 | 显示全部楼层
帮顶
回复

使用道具 举报

24

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2016-11-25
在线时间
93 小时
 楼主| 发表于 2017-4-13 20:52:04 | 显示全部楼层
szczyb1314 发表于 2017-4-13 17:39
中断里给个计数器,计数到8判断一次你的数据接收

是宏定义,那我应该怎样写呢?
回复

使用道具 举报

1

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2017-3-6
在线时间
35 小时
发表于 2017-4-14 08:40:43 | 显示全部楼层
贤荟贤惠 发表于 2017-4-13 16:58
可以不用吗?那我为什么感觉串口接收不到传感器输出的数据了?你帮我看看中断函数有没有问题。

可以不用,只要你初始化写好了就好啦。你想想51,51程序的中断需要在主函数中不停申明吗。一,你没有清标志位。你看一下数据手册,如果USART_IT_RXEN必须软件清除的话,记得清;二,usart每来一个数据就进一次中断,你每次都放在固定的位置,意思是十个数据依次来了,你都放在那个数组的位置,都把前一个覆盖啦。你应该在函数外定义一个变量从零开始计数(这里假设是i),每来一个数据就放在USART_RX_BUF。当i达到8时,你再进行判断。(因为你说USART_REC_LEN是宏定义么,我就这样想了)
回复

使用道具 举报

1

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2017-3-6
在线时间
35 小时
发表于 2017-4-14 08:43:11 | 显示全部楼层
我第二条就像8楼的仁兄说的一样。
回复

使用道具 举报

1

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2017-3-6
在线时间
35 小时
发表于 2017-4-14 08:45:06 | 显示全部楼层
zy1234536 发表于 2017-4-14 08:40
可以不用,只要你初始化写好了就好啦。你想想51,51程序的中断需要在主函数中不停申明吗。一,你没有清标 ...

补充一下,第三行的话“没来一个数据就放在USART_RX_BUF,然后i++”
回复

使用道具 举报

8

主题

206

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-4-6
在线时间
234 小时
发表于 2017-4-14 09:04:51 | 显示全部楼层
楼上正解
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2017-4-14 15:14:01 | 显示全部楼层
贤荟贤惠 发表于 2017-4-13 20:52
是宏定义,那我应该怎样写呢?

void USART1_IRQHandler(void)                        //串口1中断服务程序
{        
      if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收中断(接收到的数据必须是0x0d 0x0a结尾)
      {
           Receive_buffer[Receive_Cnt] = USART_ReceiveData(USART1);
           if(Receive_buffer[0]==0x45)  //验证包头
           {   
                Receive_Cnt=Receive_Cnt+1;
           }
           else
           {
                Receive_Cnt = 0;
           }

           if(Receive_Cnt >= 8)     //
           {
                   if(Receive_buffer[0]==0x45&&Receive_buffer[1]==0x53&&Receive_buffer[2]==0x50)
                   {
                       if(Receive_buffer[4]==0x4c&&Receive_buffer[5]==0x45&&Receive_buffer[6]==0x44)
                           {
                                   if(Receive_buffer[7]==0x31)
                                   {
                                       if(Receive_buffer[3]==0x4b){LED1 = 0;led1_zt = 1;}
                                           if(Receive_buffer[3]==0x47){LED1 = 1;led1_zt = 0;}
                                   }
                                   if(Receive_buffer[7]==0x32)
                                   {
                                       if(Receive_buffer[3]==0x4b){LED2 = 0;led2_zt = 1;}
                                           if(Receive_buffer[3]==0x47){LED2 = 1;led2_zt = 0;}
                                   }
                                   if(Receive_buffer[7]==0x33)
                                   {
                                       if(Receive_buffer[3]==0x4b){LED3 = 1;led3_zt = 1;}
                                           if(Receive_buffer[3]==0x47){LED3 = 0;led3_zt = 0;}
                                   }
                           }
                           if(Receive_buffer[4]==0x4a&&Receive_buffer[5]==0x44&&Receive_buffer[6]==0x51)
                           {
                               if(Receive_buffer[7]==0x31)
                                   {
                                       if(Receive_buffer[3]==0x4b){DK1 = 1;jdq1_zt = 1;}
                                           if(Receive_buffer[3]==0x47){DK1 = 0;jdq1_zt = 0;}
                                   }
                           }
               if(Receive_buffer[3]==0x46&&Receive_buffer[4]==0x4d&&Receive_buffer[5]==0x51&&Receive_buffer[6]==0x43&&Receive_buffer[7]==0x53)
               {
                                BEEP = 1;delay_ms(100);BEEP = 0;delay_ms(100);BEEP = 1;delay_ms(100);BEEP = 0;delay_ms(100);
                           }
               
               Receive_Cnt = 0;                           
                   }
                   else
           {
                      Receive_Cnt = 0;
                   }
                   Receive_Cnt = 0;
                }               
    }
}
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

24

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2016-11-25
在线时间
93 小时
 楼主| 发表于 2017-4-14 19:39:11 | 显示全部楼层
感谢各位的耐心指导
回复

使用道具 举报

24

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2016-11-25
在线时间
93 小时
 楼主| 发表于 2017-4-14 21:28:42 | 显示全部楼层
这么写了,tft没有显示PM2.5数据。哪里出问题了?

1.png
2.png
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-9-23 12:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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