OpenEdv-开源电子网

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

miniSTM32输入捕获实验

[复制链接]

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2016-10-5
在线时间
16 小时
发表于 2016-10-5 16:03:05 | 显示全部楼层 |阅读模式
1金钱
单片机小白一枚,参考了一下原子哥输入捕获实验的例程,想把捕获到的PWM波的高电平时间在TFTLCD上显示。只修改了主函数中PWM的频率,占空比。和显示部分。但是屏幕上无法显示。PA0和PA8也确定用杜邦线连接好了。目前只能实现,按一下wakeup在屏幕上显示一行数据。但是我要的是PWM的高电平额……求各位前辈指导,感激不尽!!主函数部分如下:#include "led.h"
#include "lcd.h"
#include "delay.h"
#include "sys.h"
#include "timer.h"
#include "usart.h"

extern u8  TIM2CH1_CAPTURE_STA;

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

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2016-10-5
在线时间
16 小时
 楼主| 发表于 2016-10-5 16:05:18 | 显示全部楼层
主函数部分:
#include "led.h"
#include "lcd.h"
#include "delay.h"
#include "sys.h"
#include "timer.h"
#include "usart.h"



extern u8  TIM2CH1_CAPTURE_STA;                //??????                                                   
extern u16        TIM2CH1_CAPTURE_VAL;        //?????
int main(void)
{       
        u8 time[50];
        u32 temp=0;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// ?????????2
        delay_init();                     //???????       
        uart_init(9600);                                 //9600         
        LED_Init();                          //????LED???????
        LCD_Init();
        TIM1_PWM_Init(899,0);                  //????PWM??=72000/(899+1)=80Khz
        TIM_SetCompare1(TIM1,450);
        TIM2_Cap_Init(0XFFFF,72-1);                //?1Mhz?????

           while(1)
        {
                LCD_Clear(WHITE);
                delay_ms(10);
                POINT_COLOR=RED;
                LCD_ShowString(30,40,200,16,16,"the high time is");

                if(TIM2CH1_CAPTURE_STA&0x80)//???????????
                {

                        temp=TIM2CH1_CAPTURE_STA&0X3F;
                        temp*=65536;                                        //??????
                        temp+=TIM2CH1_CAPTURE_VAL;                //?????????
                        sprintf((char*)time,"the high time is:%d",temp);
                        POINT_COLOR=BLUE;
                        LCD_ShowString(30,60,200,16,16,time);
                        TIM2CH1_CAPTURE_STA=0;
                        //printf("HIGH:%d us\r\n",temp);        //?????????
                        //???????
                }
               
                delay_ms(5000);
        }
}
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-10-6 19:27:04 | 显示全部楼层
仿真调试一下
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-24 15:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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