在输入捕获实验中,
想用仿真看串口打印值,但是用watch 1窗口看TIM5CH1_CAPTURE_STA一直是0x00000000,就进不去if语句,无法达到目的,求解决方法
extern u8 TIM5CH1_CAPTURE_STA; //输入捕获状态
extern u16 TIM5CH1_CAPTURE_VAL; //输入捕获值
int main(void)
{
u32 temp=0;
Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,115200); //串口初始化为 115200
delay_init(72); //延时初始化
LED_Init(); //初始化与 LED 连接的硬件接口
TIM3_PWM_Init(899,0); //不分频。 PWM 频率=72000/(899+1)=80Khz
TIM5_Cap_Init(0XFFFF,72-1); //以 1Mhz 的频率计数
while(1)
{
delay_ms(10);
LED0_PWM_VAL++;
if(LED0_PWM_VAL==300)LED0_PWM_VAL=0;
if(TIM5CH1_CAPTURE_STA&0X80) //成功捕获到了一次高电平
{
temp=TIM5CH1_CAPTURE_STA&0X3F;
temp*=65536; //溢出时间总和
temp+=TIM5CH1_CAPTURE_VAL; //得到总的高电平时间
printf("HIGH:%d us\r\n",temp); //打印总的高点平时间
TIM5CH1_CAPTURE_STA=0; //开启下一次捕获
}
}
|