OpenEdv-开源电子网

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

小白求问STM32F1单片机与浓度传感器串口通讯

[复制链接]

7

主题

34

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2018-3-2
在线时间
37 小时
发表于 2020-3-17 14:54:27 | 显示全部楼层 |阅读模式
50金钱
小白一枚
某传感器
发送: 0x11 0x01 0x01 0xED
应答: 0x16 0x09 0x01 ( O2) ) (FLOW)( 温度 ) 0x00 0x00 [ 校验字]
我用 串口数据查看了,发送没有问题,传感器给串口助手发送的也没有问题
现在是我串口中断接收程序不知道怎么解析,USART3_RX_BUF不知道怎么处理了
我把USART3_RX_BUF发出去收到的和发送的不一样,
请问这个中断接收程序应该怎么写?




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

使用道具 举报

7

主题

34

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2018-3-2
在线时间
37 小时
 楼主| 发表于 2020-3-17 14:57:28 | 显示全部楼层
void UartASendStr(u8 *buf,u8 len) // USART3·¢Ëͺ¯Êý
{
  u8 i;
  for(i = 0;i<len;i++)
  {
                USART_SendData(USART3,*buf++); // ·&cent;&Euml;&Iacute;&ordm;&macr;&Ecirc;&yacute;
    while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET);  // &micro;&Egrave;&acute;&yacute;·&cent;&Euml;&Iacute;&frac12;á&Ecirc;&oslash;
  }  
}
void USART3_Sends1(u8 null)
{
  u8 data[12]; //null=4
  data[0]=USART3_RX_BUF[0];
  data[1]=USART3_RX_BUF[1];
  data[2]=USART3_RX_BUF[2];
  data[3]=USART3_RX_BUF[3];
        data[4]=USART3_RX_BUF[4];
        data[5]=USART3_RX_BUF[5];
        data[6]=USART3_RX_BUF[6];
        data[7]=USART3_RX_BUF[7];
        data[8]=USART3_RX_BUF[8];
        data[9]=USART3_RX_BUF[9];
        data[10]=USART3_RX_BUF[10];
        data[11]=USART3_RX_BUF[11];


  UartASendStr(data,null);
}
//&frac12;&Oacute;&Ecirc;&Otilde; 0x16 0x09 0x01 (o2) (FLOW) (&Icirc;&Acirc;&para;&Egrave;) 0x00 0x00 &ETH;&pound;&Ntilde;é×&Ouml;
//     16 09 01 01 F4 00 64 00 D2 00 00 B5
void USART3_IRQHandler(void)// USART3 &Ouml;&ETH;&para;&Iuml;·&thorn;&Icirc;&ntilde;&sup3;&Igrave;&ETH;ò &frac12;&Oacute;&Ecirc;&Otilde;&Ntilde;&otilde;&Aring;¨&para;&Egrave;&acute;&laquo;&cedil;&ETH;&AElig;÷&micro;&Auml;&Ecirc;&yacute;&Ouml;&micro;
{
        u8 Res1 = 0;
  if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)// &frac12;&Oacute;&Ecirc;&Otilde;&Ouml;&ETH;&para;&Iuml;
        {
    Res1 = USART_ReceiveData(USART3); // &para;&Aacute;&Egrave;&iexcl;&frac12;&Oacute;&Ecirc;&Otilde;&micro;&frac12;&micro;&Auml;&Ecirc;&yacute;&frac34;&Yacute;
               
    USART3_RX_BUF[USART3_RX_STA&0X3FFF]=Res1;
    USART3_RX_STA++;
               
                //&Aring;¨&para;&Egrave;&frac14;&AElig;&Euml;&atilde;
    //ND_data1 = ((USART3_RX_BUF[3]*256+USART3_RX_BUF[4])); // &frac12;á&sup1;&ucirc;&pound;&ordm;&Otilde;&ucirc;&Ecirc;&yacute;/10=&cedil;&iexcl;&micro;&atilde;&Ecirc;&yacute;&pound;&not;&Icirc;&Ograve;&Iuml;&Ouml;&Ocirc;&Uacute;&sup2;&raquo;/10,&Iuml;&Egrave;×&ordf;&sup3;&Eacute;flout&pound;&not;&Ocirc;&Ugrave;/10
    //USART3_RX_STA = 0;
   // USART_ClearITPendingBit(USART3, USART_IT_RXNE);//&Ccedil;&aring;&sup3;&yacute;&Ouml;&ETH;&para;&Iuml;±ê&Ouml;&frac34;
        }

}
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2020-3-17 15:33:54 | 显示全部楼层
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2020-3-17 18:37:44 | 显示全部楼层
HXYDJ 发表于 2020-3-17 15:33
可以参考这个http://www.openedv.com/forum.php?mod=viewthread&tid=299786&extra=

看起来不错,收藏了,要是有个程序压缩包上传就更好了
业精于勤荒于嬉;行成于思毁于随!
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2020-3-17 20:46:42 | 显示全部楼层
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2020-3-18 08:54:01 | 显示全部楼层
1208 发表于 2020-3-17 18:37
看起来不错,收藏了,要是有个程序压缩包上传就更好了

源代码的压缩包在帖子中已经上传上去了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-22 21:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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