OpenEdv-开源电子网

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

为什么第一组发的数据,第一个数发不出来,再发一次才可以

[复制链接]

4

主题

7

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2022-4-22
在线时间
5 小时
发表于 2022-5-6 22:41:49 | 显示全部楼层 |阅读模式
5金钱
extern uint8_t Rxbuffer[100];
extern uint8_t RxCounter;
extern uint8_t ReceiveState;


void USART3_IRQHandler(void)                        //串口1中断服务程序
{
        uint8_t Clear=Clear;
        if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)  //接收中断
        {
                Rxbuffer[RxCounter]=USART_ReceiveData(USART3);
                RxCounter++;
                if(RxCounter == MAX_BUFFER)
       {
              RxCounter=0;
       }
        }
        else if (USART_GetITStatus(USART3, USART_IT_IDLE) != RESET)
                Clear=USART3->SR;
          Clear=USART3->DR;
          ReceiveState=1;
}        

   //发送函数
volatile uint8_t Rxbuffer[100]={0x00};
volatile uint8_t RxCounter=0;
volatile uint8_t ReceiveState=0;
while(1)
        {
                //串口3发送给串口4
                if(ReceiveState==1)
                {                               
       ReceiveState=0;
       a=0;
                while(RxCounter--)
                {  
                       
                        USART_SendData(UART4,Rxbuffer[a++]);
                        while(USART_GetFlagStatus(UART4,USART_FLAG_TC)!=SET);       
                   }       
                RxCounter=0;
                 }
               



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

使用道具 举报

4

主题

456

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1072
金钱
1072
注册时间
2021-4-26
在线时间
352 小时
发表于 2022-5-7 12:07:09 | 显示全部楼层
跑仿真看下发送buf0的时候是什么样的
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 07:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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