OpenEdv-开源电子网

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

新手请教stm32发送指定脉冲数量的问题!

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2013-3-18
在线时间
0 小时
发表于 2013-11-2 16:29:21 | 显示全部楼层 |阅读模式
原子兄你好,之前有看到你的一个发送指定脉冲数量的程序,如下,应该是指定发送450个脉冲。我想问的是如何在发送了450个脉冲后停止发送呢,必须要用到中断吗?
int main(void)
{
  u16 led0pwmval=450;
u8 dir=1;
  Stm32_Clock_Init(9); //系统时钟设置
delay_init(72);     //延时初始化
uart_init(72,9600);  //串口初始化 
LED_Init();   //初始化与LED连接的硬件接口

TIM2_Init_One_Pause(14400,1600);//12MHz  
    TIM1_SLAVE_PWM_Init(400,36);  //5Khz的频率
TIM2->CCR1=7200;

while(1)
{
if((TIM2->CR1&0x01)==0)
{
printf("A PAUSE Will GEN!\n");
delay_ms(1);
TIM1->CNT=0;     
  TIM2->CR1|=0x01;   
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-2 21:23:24 | 显示全部楼层
不用一定要用中断。
定时器2采用单脉冲模式,输出一个脉冲。
而这个脉冲,去控制定时器1,定时器1是门控模式。
在定时器2脉冲期间才输出PWM。
只要计算好定时器2的脉宽,以及定时器1的频率,就可以控制输出脉冲的个数。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2013-3-18
在线时间
0 小时
 楼主| 发表于 2013-11-3 07:37:41 | 显示全部楼层
多谢,原子兄!
回复 支持 反对

使用道具 举报

7

主题

25

帖子

0

精华

高级会员

Rank: 4

积分
597
金钱
597
注册时间
2019-8-22
在线时间
173 小时
发表于 2020-11-24 11:19:29 | 显示全部楼层
正点原子 发表于 2013-11-2 21:23
不用一定要用中断。
定时器2采用单脉冲模式,输出一个脉冲。
而这个脉冲,去控制定时器1,定时器1是门控模 ...

原子哥,这个单脉冲+门控方式,怎样知道发了多少脉冲么?因为我是用一个1ms周期的外部中断来发脉冲,发脉冲已经配置了1ms发指定脉冲数并验证过没有丢脉冲。现在我发了一段脉冲,发现脉冲数少了。抓波形分析了下,感觉是脉冲没发完就来了新中断,导致重新发脉冲,所以我是想知道没发完的脉冲,把它放在下个中断里面一起发了。有什么好的办法么?尽量不用到阻塞。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 09:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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