OpenEdv-开源电子网

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

求大神解释一下下面代码。

[复制链接]

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2020-10-16
在线时间
30 小时
发表于 2020-10-23 17:09:54 | 显示全部楼层 |阅读模式
1金钱
void USART3_IRQHandler(void)
{       
     unsigned int data;
     uint8_t *msg_p=NULL;
    if(USART3->SR & 0x0F)
    {
        data = USART3->DR;
    }
#ifndef UART_DMA                
    else if(USART3->SR & USART_FLAG_RXNE)  
    {               
            data = USART3->DR;
            ringbuf_put(&ring_fifo,data);
             if(ringbuf_elements(&ring_fifo)==1)
               USART_ITConfig(USART3, USART_IT_IDLE, ENABLE);

                                            
    }
#endif               
                else if(USART3->SR & USART_FLAG_IDLE){
                 data=USART3->SR;
                             data=USART3->DR;
#ifndef UART_DMA                 
                 USART_ITConfig(USART3, USART_IT_IDLE, DISABLE);   
#else
                 DMA_Cmd(USARx_DMA[3], DISABLE);  //先停止DMA才行设置缓冲区大小
                 ring_fifo.put_ptr = MAX_RCV_LEN - DMA_GetCurrDataCounter(USARx_DMA[3]);  
#endif

            if((msg_p= strstr((const char *)ring_fifo.data, "+MIPL"))!=NULL) {
                 fifo_put(dl_buf_id,ringbuf_elements(&ring_fifo),ring_fifo.data);                           
            }else if((msg_p= strstr((const char *)ring_fifo.data, "+CEREG:0"))!=NULL){
                                                     Led3_Set(LED_OFF);  
                                                }else if((msg_p= strstr((const char *)ring_fifo.data, "+CEREG:1"))!=NULL){
                                                     Led3_Set(LED_ON);
                                                }else{
                  rsp_ok=1;
                  ring_fifo1.get_ptr=ring_fifo.get_ptr;
                  ring_fifo1.put_ptr= ring_fifo.put_ptr;
                  memcpy(ring_fifo1.data,ring_fifo.data,ringbuf_elements(&ring_fifo));
              }
              ringbuf_clear(&ring_fifo);   
        }

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

使用道具 举报

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2020-10-16
在线时间
30 小时
 楼主| 发表于 2020-10-23 17:11:39 | 显示全部楼层
本帖最后由 zly0516 于 2020-10-23 17:17 编辑

数据是data,不知为什么复制过来就变了
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-10-25 12:36:16 | 显示全部楼层
中断里面不会改变呀
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 00:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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