输入捕获实验再输出

2019-07-21 03:27发布

  自己改一个代码,不知道对不对,另外不知道怎么改输出端,希望大家帮忙看看! #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捕获这个输出!,对吗? 捕获后,我还想输出这个信号,该怎么做啊!   求大神指点! 





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
正点原子
1楼-- · 2019-07-21 07:23
 精彩回答 2  元偷偷看……
caosix
2楼-- · 2019-07-21 08:52

“捕获后,我还想输出这个信号,该怎么做啊!”——??

首先是:你打算 如何去 输出 —— ???——

你 捕捉到的 只是:这个 波形 的 参数 吧 !?(我没 仔细看你的程序)


例如——我的——(STM32F103 的程序)捕捉之后 除以2 再输出。

佚居士
3楼-- · 2019-07-21 09:13
回复【3楼】caosix:
--------------------------------
我想原样输出,换一个管脚.目前是新手,不知道这个程序输出在那里!
佚居士
4楼-- · 2019-07-21 10:32
我是想把补获的新号转换成数组,再把数组转换成信号在另一个管脚输出,想做一个遥控器!
佚居士
5楼-- · 2019-07-21 15:23
求回复!求回复!
caosix
6楼-- · 2019-07-21 20:25
 精彩回答 2  元偷偷看……

一周热门 更多>