你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

通信E32模块读取工作参数,读取数据错误,麻烦大神支招

[复制链接]
eric92 提问时间:2018-11-27 19:23 /
while循环
while(1)
         {
    if(ReceiveState==1)
                {
                  ReceiveState=0;
                        i=0;
                while(Rxcounter--)       
                {
                USART_SendData(USART1,RX_buff[i]);
                while(USART_GetFlagStatus(USART1,USART_FLAG_TC) == RESET);//·¢ËÍ¿Õ±ê־λ               
                }
                Rxcounter=0;
                }                 
   }
}

串口中断
void USART1_IRQHandler(void)
{               
    u8 clear=clear;       
if( USART_GetITStatus(USART1,USART_IT_RXNE) != RESET )
   {
           RX_buff[Rxcounter++]=USART_ReceiveData(USART1);
    }
         else if(USART_GetITStatus(USART1,USART_IT_IDLE)!=RESET)
         {
          clear=USART1->SR;
          clear=USART1->DR;         
          ReceiveState=1;
         }
}



配置
void GPIO_Configuration(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;       

        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//TX
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//¸´ÓÃÍÆÍìÊä³ö
        GPIO_Init(GPIOA,&GPIO_InitStructure);       
       
       
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//RX
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
        GPIO_Init(GPIOA,&GPIO_InitStructure);       
       
}

void USART_Configuration(void)
  {
        USART_InitTypeDef USART1_InitStructure;

               
        USART1_InitStructure.USART_BaudRate=9600;
        USART1_InitStructure.USART_WordLength=USART_WordLength_8b;//Ô¤·ÖƵ
        USART1_InitStructure.USART_StopBits=USART_StopBits_1;
        USART1_InitStructure.USART_Parity=USART_Parity_No;
        USART1_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;       
        USART1_InitStructure.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;

        USART_Init(USART1,&USART1_InitStructure);
        //USART_ITConfig(USART1,USART_IT_TXE,ENABLE);//·¢ËÍÖжϲ»ÐèÒª´ò¿ª
  USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//ʹÄܽÓÊÕÖжÏ
        USART_ITConfig(USART1, USART_IT_IDLE, ENABLE);//ʹÄÜ¿ÕÏÐÖжÏ
//        USART_ITConfig(USART1, USART_IT_ORE, ENABLE);
        USART_Cmd(USART1,ENABLE);
        USART_ClearFlag(USART1,USART_FLAG_TC);
               
  }

        void NVIC_Configuration(void)
{
           NVIC_InitTypeDef NVIC_InitStructure;

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

        NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
}



评分

参与人数 1 ST金币 +20 收起 理由
STMCU + 20 金币到账

查看全部评分

收藏 1 评论8 发布时间:2018-11-27 19:23

举报

8个回答
eric92 回答时间:2018-11-27 19:24:01
就是接收不了数据,麻烦大神指点
eric92 回答时间:2018-11-28 10:23:28
麻烦指点一下
废鱼 回答时间:2018-11-28 11:02:35
没有开启GPIO,USART的时钟。

评分

参与人数 1ST金币 +4 蝴蝶豆 +2 收起 理由
STMCU + 4 + 2

查看全部评分

eric92 回答时间:2018-11-28 11:04:28
安 发表于 2018-11-28 11:02
没有开启GPIO,USART的时钟。

时钟忘记贴出来了,开启了时钟。
eric92 回答时间:2018-11-28 11:05:14
void RCC_Configuration(void)
{
    SystemInit();
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
                 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
}
这个是时钟配置
eric92 回答时间:2018-11-28 11:06:59
工作参数是6个字节,我收到了12个字节,且都显示是第一个字节
废鱼 回答时间:2018-11-28 11:35:23
串口中断中读取数据后,也要清除中断标志位。
void USART1_IRQHandler(void)
{               
    u8 clear=clear;        
if( USART_GetITStatus(USART1,USART_IT_RXNE) != RESET )
   {
           RX_buff[Rxcounter++]=USART_ReceiveData(USART1);
           USART_ClearITPendingBit(USART1, USART_IT_RXNE);
    }
         else if(USART_GetITStatus(USART1,USART_IT_IDLE)!=RESET)
         {
          clear=USART1->SR;
          clear=USART1->DR;         
          ReceiveState=1;
         }
}

eric92 回答时间:2018-11-28 13:18:21
安 发表于 2018-11-28 11:35
串口中断中读取数据后,也要清除中断标志位。
void USART1_IRQHandler(void)
{               

可以了,谢谢

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版