OpenEdv-开源电子网

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

定时器中断与PVD中断问题

[复制链接]

30

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
217
金钱
217
注册时间
2012-11-12
在线时间
0 小时
发表于 2013-7-10 10:05:07 | 显示全部楼层 |阅读模式
我是在定时器中断里通过串口发送数据,PVD中断设置的2.9V,掉电时在PVD中断里保存数据,然后上电时读取,可是偶尔会出现上电读取的数据是前一次保存的(也就是上一次的数据没有保存上),如果把定时器中断关了,串口发送在while里进行,保存读取都没有问题,请问这是怎么回事啊?定时器中断与PVD中断的优先级如下:

  if(TIM == TIM1)
      NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQn;
  else if(TIM == TIM2)
  NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;

  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

  NVIC_Init(&NVIC_InitStructure);



  NVIC_InitStructure.NVIC_IRQChannel = PVD_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

PVD中断如下:

void PVD_IRQHandler(void)
{
  EXTI_ClearITPendingBit(EXTI_Line16); 
if(PWR_GetFlagStatus(PWR_FLAG_PVDO)) 
 {
        EE_WriteVariable(0x5555, r);
EE_WriteVariable(0x6666, zero);  
PWR_ClearFlag(PWR_FLAG_PVDO);

 }

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-7-10 10:52:07 | 显示全部楼层
回复【楼主位】jay517217:
---------------------------------
估计是你断电的时候,进入了定时器串口数据发送,此时PVD中断的优先级可能比定时器优先级低,导致就没法写数据了,或者不够时间写了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

30

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
217
金钱
217
注册时间
2012-11-12
在线时间
0 小时
 楼主| 发表于 2013-7-10 10:58:07 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,应该怎么解决呢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-7-10 11:10:23 | 显示全部楼层
看PVD的优先级可以设置不,可以的话,设置为最高.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

30

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
217
金钱
217
注册时间
2012-11-12
在线时间
0 小时
 楼主| 发表于 2013-7-10 11:57:15 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
0 0 不是最高的了吗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-7-10 14:18:37 | 显示全部楼层
对哦,已经是最高了,呵呵.
那你去掉其他中断,在测试下.
如果还不行,说明2.9V以后,电压降得很快,STM32还不够时间去写,电就没了.
其实你这种方式很危险.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

30

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
217
金钱
217
注册时间
2012-11-12
在线时间
0 小时
 楼主| 发表于 2013-7-10 15:33:57 | 显示全部楼层
回复【6楼】正点原子:
--------------------------------
为什么危险啊?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-7-10 21:14:49 | 显示全部楼层
掉电块的话,你都来不及写数据,掉电的时候,电压又不稳,难免写的时候出点什么篓子.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

30

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
217
金钱
217
注册时间
2012-11-12
在线时间
0 小时
 楼主| 发表于 2013-7-12 10:53:33 | 显示全部楼层
回复【8楼】正点原子 
---------------------------------
原子哥,这个问题解决了,是掉电太快了,又遇到一个问题,这次没用定时器中断,在while循环里DAC发送数据,掉电时保存数据,上电读取,JTAG连接上板子调试的时候DAC可以发送数据,当时去掉JTAG也可以,但是断电再上电后DAC就发不出数据来了,是怎么回事啊?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-7-12 14:03:13 | 显示全部楼层
回复【9楼】jay517217:
---------------------------------
这不清楚了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2017-1-14
在线时间
48 小时
发表于 2017-2-5 19:05:05 | 显示全部楼层
正在学习这个PVD,看了好几个帖子了,PVD中断看来不是那么好控制的。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 01:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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