OpenEdv-开源电子网

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

串口接收断点调试问题

[复制链接]

13

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
241
金钱
241
注册时间
2016-2-2
在线时间
80 小时
发表于 2017-12-22 21:23:09 | 显示全部楼层 |阅读模式
6金钱
这是我自己写的一个中断串口接收函数在调试的时候发现我用串口助手一次发送多个字符如 aaaaa,打断点在这个函数内部,会运行到这个函数中的断点处,再次点击run程序就不会再进入中断。只接收了一个数据,后面的四个a并没有被接收也没有再次进入中断这是为什么呢?

void USART2_IRQHandler(void)
{
  uint8_t USART2_RxData;
  if(USART_GetITStatus(USART2,USART_IT_RXNE)==SET)
  {
    USART2_RxData=USART_ReceiveData(USART2);

  }
}


最佳答案

查看完整内容[请看2#楼]

看来楼主是没有用过断点功能吧. 第一次使用断点调试功能吗? 你收到第一个数据时,就进入了断点.你的程序就不跑了.后面发送的内容都错过了.没有接收到呀. 程序能收到第一个字节.也表示串口通了.无断点情况下,后面的内容自然也会收到.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-12-22 21:23:10 | 显示全部楼层
看来楼主是没有用过断点功能吧.
第一次使用断点调试功能吗?
你收到第一个数据时,就进入了断点.你的程序就不跑了.后面发送的内容都错过了.没有接收到呀.
程序能收到第一个字节.也表示串口通了.无断点情况下,后面的内容自然也会收到.
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2018-6-13
在线时间
15 小时
发表于 2018-6-25 14:55:27 | 显示全部楼层
操作系统 发表于 2017-12-22 21:23
看来楼主是没有用过断点功能吧.
第一次使用断点调试功能吗?
你收到第一个数据时,就进入了断点.你的程序就 ...

大神,借楼问个问题~想问问在IAR中调试STM32的ADC时候,打上断点之后查看寄存器中第一次AD转换(使用DMA方式)的值发现数值变化范围较大,后续每次AD转换结果都很稳定,几乎没有差别,求回复
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2018-6-28 09:30:09 | 显示全部楼层
Sarah 发表于 2018-6-25 14:55
大神,借楼问个问题~想问问在IAR中调试STM32的ADC时候,打上断点之后查看寄存器中第一次AD转换(使用DMA ...

几乎所有的单片机的ADC转换都是一个德行。在通道切换时,ADC值会不太稳定。请程序设计人员丢弃他的切换后的2次采集值。
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2018-6-13
在线时间
15 小时
发表于 2018-6-29 17:35:25 | 显示全部楼层
操作系统 发表于 2018-6-28 09:30
几乎所有的单片机的ADC转换都是一个德行。在通道切换时,ADC值会不太稳定。请程序设计人员丢弃他的切换后 ...

大神,可能之前没有描述具体情况,ADC(DMA)采集2个通道的信号,
断点打在函数HAL_ADC_Start_DMA(&hadc, (uint32_t*)Rx, 50)下一行时,Rx中任一通道的数值变化较大(例如:2通道采集到的25个数值逐渐减小),如果让程序跑一段之后打断点,2通道中的25个数值就是稳定的,想问问是否是刚开始的时候ADC不稳定,我看到的“2通道采集到的25个数值逐渐减小”是否也表明ADC在多次转换后趋于稳定。。

啊说得比较乱,感谢大神的回复
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2018-6-13
在线时间
15 小时
发表于 2018-6-29 17:42:27 | 显示全部楼层
操作系统 发表于 2018-6-28 09:30
几乎所有的单片机的ADC转换都是一个德行。在通道切换时,ADC值会不太稳定。请程序设计人员丢弃他的切换后 ...

啊,大神,另外想问一个就是,如果我GPIO口开外部中断,会影响定时器的工作吗?因为我是进外部中断后读取定时器的计数值以及定时器的溢出次数(调用定时器更新中断),现在程序结果看来是定时器工作混乱啊

跪求回复,感谢大神
回复

使用道具 举报

2

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
217
金钱
217
注册时间
2017-3-20
在线时间
34 小时
发表于 2018-6-30 14:47:29 | 显示全部楼层
开外部中断是不会影响定时器工作的,定时器工作混乱是怎么个混乱法,定时不准?
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2018-6-13
在线时间
15 小时
发表于 2018-7-2 09:10:53 | 显示全部楼层
本帖最后由 Sarah 于 2018-7-4 16:02 编辑
1044426608 发表于 2018-6-30 14:47
开外部中断是不会影响定时器工作的,定时器工作混乱是怎么个混乱法,定时不准?

目前是IO口上升沿触发外中断,读取定时器的值计算两个上升沿之间的时间差,但有时得到的结果接近于是第一个和第三个上升沿之间的时间差。。。示波器看过不会出现这样的信号,所以觉得会不会是定时器的问题。。。



int main(void)
{
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_TIM1_Init();
/* USER CODE BEGIN 2 */
if(HAL_TIM_Base_Start_IT(&htim1)!=HAL_OK)
  {
    Error_Handler();
  }

    if (HAL_TIM_IC_Start_IT(&htim1, TIM_CHANNEL_4) != HAL_OK)
  {
    /* Starting Error */
    Error_Handler();
  }

  while (1)
  {

   }
}



/* USER CODE BEGIN 4 */

void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{

    if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_4)//TI4value!=0
  {


      if(capture_number==0)
    {
      last_cnt1=HAL_TIM_ReadCapturedValue(&htim1, TIM_CHANNEL_4);
     // cur_cnt=last_cnt;
      N1=0;
    }
    else
    {
     cur_cnt1=HAL_TIM_ReadCapturedValue(&htim1, TIM_CHANNEL_4);
     temp1=(cur_cnt1+N1*50000-last_cnt1)/50;
    // temp = temp/50;///HAL_RCC_GetHCLKFreq()*  (htim1.Init.Prescaler+1)*1000;


     if (temp1>570)
     {
       last_cnt1=cur_cnt1;
        TI4_Fre1=temp1;
        N1=0;
     }

   }


  capture_number=1;  

  }
}
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
   N++;
   N1++;
}
/* USER CODE END 4 */

回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-29 05:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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