OpenEdv-开源电子网

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

STM32串口问题求助

[复制链接]

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2012-4-12
在线时间
0 小时
发表于 2012-4-23 19:56:29 | 显示全部楼层 |阅读模式
谁有串口接收请求之后,发送数据的例程,
小弟现在只会单片机隔半秒发送数据搞的VB界面显示的波形都很乱。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2012-4-12
在线时间
0 小时
 楼主| 发表于 2012-4-23 20:11:30 | 显示全部楼层
回复【楼主位】xu1483018187:
---------------------------------
哦,就是实验3,串口实验,还有些不懂诶
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2012-4-12
在线时间
0 小时
 楼主| 发表于 2012-4-23 20:19:53 | 显示全部楼层
回复【2楼】xu1483018187:
---------------------------------
我VB发送1、2、3等数值单片机分别发送通道1、2、3等的数据,这些如何搞?还有0x0d,0x40这种是什么意思?
回复 支持 反对

使用道具 举报

18

主题

100

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1196
金钱
1196
注册时间
2012-3-26
在线时间
387 小时
发表于 2012-4-23 20:52:33 | 显示全部楼层
你问题描述不清楚...
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-4-23 21:29:29 | 显示全部楼层
回复【2楼】xu1483018187:
---------------------------------
我的代码需要加入回车才能返回的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2012-4-12
在线时间
0 小时
 楼主| 发表于 2012-4-23 22:07:41 | 显示全部楼层
回复【4楼】swanegong:
---------------------------------
就是现在我的单片机是就如下发送。而VB是发送1、2、3、4等数值请求,要单片机再分别返回8通道的数值。
现在这样就是没有应答请求,直接每隔半秒发送,使得我的VB显示很乱。
          printf(" AD value1 = %4.2fV \r\n", AD_value1);
  delay_ms(500);
  printf(" AD value2 = %4.2fV \r\n", AD_value2);
  delay_ms(500);
  printf(" AD value3 = %4.2fV \r\n", AD_value3);
  delay_ms(500);
  printf(" AD value4 = %4.2fV \r\n", AD_value4);
  delay_ms(500);
  printf(" AD value5 = %4.2fV \r\n", AD_value5);
  delay_ms(500);
  printf(" AD value6 = %4.2fV \r\n", AD_value6);
  delay_ms(500);
  printf(" AD value7 = %4.2fV \r\n", AD_value7);
  delay_ms(500);
  printf(" AD value8 = %4.2fV \r\n", AD_value8);
回复 支持 反对

使用道具 举报

18

主题

100

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1196
金钱
1196
注册时间
2012-3-26
在线时间
387 小时
发表于 2012-4-23 22:41:48 | 显示全部楼层
回复【6楼】xu1483018187:
回复【4楼】swanegong: --------------------------------- 就是现在我的单片机是就如下发送。而VB是发送1、2、3、4等数值请求,要单片机再分别返回8通道的数值。 现在这样就是没有应答请求,直接每隔半秒发送,使得我的VB显示很乱。           printf(" AD value1 = %4.2fV \r\n", AD_value1);   delay_ms(500);   printf(" AD value2 = %4.2fV \r\n", AD_value2);   delay_ms(500);   printf(" AD value3 = %4.2fV \r\n", AD_value3);   delay_ms(500);   printf(" AD value4 = %4.2fV \r\n", AD_value4);   delay_ms(500);   printf(" AD value5 = %4.2fV \r\n", AD_value5);   delay_ms(500);   printf(" AD value6 = 
......
---------------------------------
你把原子哥的串口通讯理解清楚了,你的问题就解决了,我就是这么过来的,呵呵

通讯协议可以自己定义
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2012-4-12
在线时间
0 小时
 楼主| 发表于 2012-4-23 23:28:43 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
0x0d  这个就是定义回车吗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-4-24 00:54:58 | 显示全部楼层
回复【8楼】xu1483018187:
---------------------------------
注释有说:回车=0X0D+0X0A
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2012-4-12
在线时间
0 小时
 楼主| 发表于 2012-4-27 15:59:58 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
原子哥,我现在已经可以串口助手发送1,单片机返回1通道数据;程序如下。但是发送一次它只返回一个数据,咋么写它才会当串口助手发送1时,它不停的发送1通道的数据;当串口助手发送2时,它不停的发送2通道的数据

u8  RX_status;
if(USART_GetITStatus(USART1, USART_IT_RXNE))
   { RX_status = (USART_ReceiveData(USART1));
if(RX_status =='1')
  {  printf(" %4.2fV \r\n", AD_value1);
   }
if(RX_status =='2')
  {  printf(" %4.2fV \r\n", AD_value2);
    }
   if(RX_status =='3')
  { printf(" %4.2fV \r\n", AD_value3);
     }
   if(RX_status =='4')
  {  printf(" %4.2fV \r\n", AD_value4);
  }
  if(RX_status =='5')
  { printf(" %4.2fV \r\n", AD_value5);
  }
  if(RX_status =='6')
  {  printf(" %4.2fV \r\n", AD_value6);
   }
  if(RX_status =='7')
  {  printf(" %4.2fV \r\n", AD_value7);
  }
  if(RX_status =='8')
  {  printf(" %4.2fV \r\n", AD_value8);
  }
   USART_ClearITPendingBit(USART1, USART_IT_RXNE);
   
   }
回复 支持 反对

使用道具 举报

5

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2011-10-24
在线时间
31 小时
发表于 2012-4-27 16:27:51 | 显示全部楼层
不停发,就得发死循环中。
回复 支持 反对

使用道具 举报

5

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2011-10-24
在线时间
31 小时
发表于 2012-4-27 16:28:24 | 显示全部楼层
写错了。

是放死循环中。
回复 支持 反对

使用道具 举报

5

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2011-10-24
在线时间
31 小时
发表于 2012-4-27 16:32:14 | 显示全部楼层
你用状态判断,判断完发一次,然后清状态了。

在串口中断设置一个标志,接收到1,然后标志置1.
在主循环中判断标志为1,不停发就可以了。

1, bool  CommRecFlag =0;

2,中断接收成功 CommRecFlag =1;

3,在main  
     while(1)
{
if(CommRecFlag ==1) 
  {  
printf(" %4.2fV \r\n", AD_value1); 
   } 
}
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-4-27 16:33:03 | 显示全部楼层
对用
while(1)
{

}
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2012-4-12
在线时间
0 小时
 楼主| 发表于 2012-4-27 16:35:39 | 显示全部楼层
回复【14楼】正点原子:
---------------------------------
这个已经在while(1)中了
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2012-4-12
在线时间
0 小时
 楼主| 发表于 2012-4-27 16:38:40 | 显示全部楼层
回复【12楼】hqgboy:
---------------------------------
这个已经在while(1)中了啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-4-27 17:00:06 | 显示全部楼层
回复【16楼】xu1483018187:
---------------------------------
看12楼
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2012-4-12
在线时间
0 小时
 楼主| 发表于 2012-4-27 17:16:16 | 显示全部楼层
回复【13楼】hqgboy:
---------------------------------
那这8个是否要标志8个
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 17:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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