高中生
最后登录1970-1-1
在线时间 小时
注册时间2016-4-2
|
我是大二的学生,最近在看野火的测量脉宽的库,但是还是没头绪,想请大家帮忙看下
1、主函数
int main(void)
{
uint32_t ulTmrClk, ulTime;
USARTx_Config ();
LED_Init ();
TIMx_Capture_Init ();
printf ( "\r\n STM32输入捕获实验 \r\n" );
printf ( "\r\n按下K1 测量按下K1的时间\r\n" );
ulTmrClk = BSP_CPU_ClkFreq() / macTIM_Prescaler;
while ( 1 )
{
if ( strCapture .ucFinishFlag == 1 )
{
ulTime = strCapture .usPeriod * macTIM_Period + strCapture .usCtr;
printf ( "\r\n测的高电平脉宽时间:%d.%d s\r\n", ulTime / ulTmrClk, ulTime % ulTmrClk );
strCapture .ucFinishFlag = 0;
}
}
}
2、根据野火库的用法,我认为单纯看现象的话直接烧入开发板就可以了,但是mini板PA0没有引出来,所以我改了IO,既然改了IO,就要根据定时器改变通道,可以这样下载进去后还是不行
显示的情况一直是:测的高电平脉宽时间: 0.0 s 我想知道到底是我不会用还是这样改不对,我改的.h文件如下,就改了IO和通道名
#define macTIMx TIM5
#define macTIM_APBxClock_FUN RCC_APB1PeriphClockCmd
#define macTIM_CLK RCC_APB1Periph_TIM5
#define macTIM_Period 0xFFFF
#define macTIM_Prescaler 72
#define macTIM_GPIO_APBxClock_FUN RCC_APB2PeriphClockCmd
#define macTIM_GPIO_CLK RCC_APB2Periph_GPIOA
#define macTIM_INPUT_PORT GPIOA
#define macTIM_INPUT_PIN GPIO_Pin_2
#define macTIM_Channel_x TIM_Channel_3
#define macTIM_IT_CCx TIM_IT_CC3
#define macTIM_OCxPolarityConfig TIM_OC1PolarityConfig
#define macTIM_GetCapturex_FUN TIM_GetCapture1
#define macTIM_OCxPolarityConfig_FUN TIM_OC1PolarityConfig
#define macTIMx_IRQn TIM5_IRQn
#define macTIM_INT_FUN TIM5_IRQHandler
#define macTIM_STRAT_ICPolarity TIM_ICPolarity_Rising
#define macTIM_END_ICPolarity TIM_ICPolarity_Falling
谢谢大家了!
|
|