OpenEdv-开源电子网

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

挂起跟中断标志 一样?

[复制链接]

5

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-8-10
在线时间
0 小时
发表于 2013-9-28 20:37:51 | 显示全部楼层 |阅读模式
两个函数操作的寄存器一样 只是一个参数的输入范围不一样 (而且前8个参数是一样的
重点:为什么要弄两个函数???  清除挂起位跟清除中断标志位是一样的吗?

#define TIM_FLAG_Update                    ((uint16_t)0x0001)
#define TIM_FLAG_CC1                       ((uint16_t)0x0002)
#define TIM_FLAG_CC2                       ((uint16_t)0x0004)
#define TIM_FLAG_CC3                       ((uint16_t)0x0008)
#define TIM_FLAG_CC4                       ((uint16_t)0x0010)
#define TIM_FLAG_COM                       ((uint16_t)0x0020)
#define TIM_FLAG_Trigger                   ((uint16_t)0x0040)
#define TIM_FLAG_Break                     ((uint16_t)0x0080)
#define TIM_FLAG_CC1OF                     ((uint16_t)0x0200)
#define TIM_FLAG_CC2OF                     ((uint16_t)0x0400)
#define TIM_FLAG_CC3OF                     ((uint16_t)0x0800)
#define TIM_FLAG_CC4OF                     ((uint16_t)0x1000)
 void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG)

  /* Check the parameters */
  assert_param(IS_TIM_ALL_PERIPH(TIMx));
  assert_param(IS_TIM_CLEAR_FLAG(TIM_FLAG));
  
  /* Clear the flags */
  TIMx->SR = (uint16_t)~TIM_FLAG;
}





#define TIM_IT_Update                      ((uint16_t)0x0001)
#define TIM_IT_CC1                         ((uint16_t)0x0002)
#define TIM_IT_CC2                         ((uint16_t)0x0004)
#define TIM_IT_CC3                         ((uint16_t)0x0008)
#define TIM_IT_CC4                         ((uint16_t)0x0010)
#define TIM_IT_COM                         ((uint16_t)0x0020)
#define TIM_IT_Trigger                     ((uint16_t)0x0040)
#define TIM_IT_Break                       ((uint16_t)0x0080)
void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT)
{
  /* Check the parameters */
  assert_param(IS_TIM_ALL_PERIPH(TIMx));
  assert_param(IS_TIM_IT(TIM_IT));
  /* Clear the IT pending Bit */
  TIMx->SR = (uint16_t)~TIM_IT;
}


机会,抓住一次就够了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-28 21:43:11 | 显示全部楼层
回复 支持 反对

使用道具 举报

5

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-8-10
在线时间
0 小时
 楼主| 发表于 2013-9-28 21:52:55 | 显示全部楼层
小生不才  除了用那个什么位带的  怎么可以实现led翻转??
一下是我的做法(可以用)  但觉得很臃肿
求大神给出更好的做法

  GPIOA->ODR =(u16)((1-((GPIOA->ODR & GPIO_Pin_8)>>8))<<8);
机会,抓住一次就够了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-29 14:32:59 | 显示全部楼层
回复【3楼】iDream:
---------------------------------
那就用位带操作。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-8-10
在线时间
0 小时
 楼主| 发表于 2013-9-29 20:24:55 | 显示全部楼层
 TIM_OCInitStructure.TIM_Pulse = 0; //设置待装入捕获比较寄存器的脉冲值
 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高
什么意思??可以具体点嘛
机会,抓住一次就够了
回复 支持 反对

使用道具 举报

5

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-8-10
在线时间
0 小时
 楼主| 发表于 2013-9-29 20:30:56 | 显示全部楼层
如何快速查看库函数的结构体  具体是操作了那些寄存器
机会,抓住一次就够了
回复 支持 反对

使用道具 举报

5

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-8-10
在线时间
0 小时
 楼主| 发表于 2013-9-29 20:44:54 | 显示全部楼层
 


我把例程下载后  开发板没有反应   是通道设置错误???
机会,抓住一次就够了
回复 支持 反对

使用道具 举报

5

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-8-10
在线时间
0 小时
 楼主| 发表于 2013-9-29 21:56:35 | 显示全部楼层
//TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
在pwm实验中   注释以上这句  也能完成实验!!
为什么?????、
查了下手册   作用是 输出比较2预装载失能(output compare 2 reload enable)

那么真的与我们的pwm实验无关吗?
机会,抓住一次就够了
回复 支持 反对

使用道具 举报

5

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-8-10
在线时间
0 小时
 楼主| 发表于 2013-9-29 22:01:22 | 显示全部楼层
晕了   把这句注释掉   //RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
照样可以啊 ???
怎么回事啊 ??
求解决
机会,抓住一次就够了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-30 04:49:06 | 显示全部楼层
回复【7楼】iDream:
---------------------------------
mini板?要短接PA7PA8啊!看README.TXT先。
回复【8楼】iDream:
---------------------------------
这个对我们的PWM实验无影响。

回复【9楼】iDream:
---------------------------------
可能在其他地方开启了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-8-10
在线时间
0 小时
 楼主| 发表于 2013-10-1 11:36:17 | 显示全部楼层
回复【10楼】 正点原子 :
回复【7楼】 iDream : --------------------------------- mini板?要短接PA7PA8啊!看README.TXT先。 回复【8楼】 iDream : --------------------------------- 这个对我们的PWM实验无影响。 回复【9楼】 iDream : --------------------------------- 可能在其他地方开启了。
---------------------------------
1、哦哦
2、




TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
操作的就是这个位

3、


只能看到GPIOA  和USART开启了使能位  没有AFIO!!
机会,抓住一次就够了
回复 支持 反对

使用道具 举报

5

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-8-10
在线时间
0 小时
 楼主| 发表于 2013-10-1 13:11:25 | 显示全部楼层

...

回复 支持 反对

使用道具 举报

5

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-8-10
在线时间
0 小时
 楼主| 发表于 2013-10-2 15:13:16 | 显示全部楼层
崩溃了   pwm捕获实验 
迷你开发板  TIM2_CH2(PA1)捕获    TIM3_CH2(PA7)输出的pwm信号  、、、失败!!


机会,抓住一次就够了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-12 03:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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