自己改一个代码,不知道对不对,另外不知道怎么改输出端,希望大家帮忙看看!
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "timer.h"
extern u8 TIM2CH1_CAPTURE_STA; //输入捕获状态
extern u16 TIM2CH1_CAPTURE_VAL; //输入捕获值
int main(void)
{
u32 temp=0;
Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,9600); //串口初始化为9600
delay_init(72); //延时初始化
LED_Init(); //初始化与LED连接的硬件接口
TIM1_PWM_Init(1895,0); //不分频。PWM频率=72000/(1895+1)=38Khz
TIM2_Cap_Init(0XFFFF,72-10); //以100khz的频率计数
while(1)
{
//delay_ms(10);
//LED0_PWM_VAL++;
//if(LED0_PWM_VAL==300)LED0_PWM_VAL=0;
LED0_PWM_VAL=948;
if(TIM2CH1_CAPTURE_STA&0X80)//成功捕获到了一次高电平
{
temp=TIM2CH1_CAPTURE_STA&0X3F;
temp*=65536; //溢出时间总和
temp+=TIM2CH1_CAPTURE_VAL; //得到总的高电平时间
printf("HIGH:%d us
",temp); //打印总的高点平时间
TIM2CH1_CAPTURE_STA=0; //开启下一次捕获
}
}
}
如果代码这样的,我把PA8与PA0 链接上,实现的功能是:从PA8输出38KHZ的方波,在PA0捕获这个输出!,对吗?
捕获后,我还想输出这个信号,该怎么做啊! 求大神指点!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
“捕获后,我还想输出这个信号,该怎么做啊!”——??
首先是:你打算 如何去 输出 —— ???——
你 捕捉到的 只是:这个 波形 的 参数 吧 !?(我没 仔细看你的程序)
例如——我的——(STM32F103 的程序)捕捉之后 除以2 再输出。
--------------------------------
我想原样输出,换一个管脚.目前是新手,不知道这个程序输出在那里!
一周热门 更多>