سلام مهندس من خواستم یه برنامه pwm بنویسم . همه هدرارو واسه کتابخونه فراخوندم که خیالم راحت باشه و در فایل main هم کد زیرو از یه برنامه دیگه کپی کردم . اما ارور میداد که توابع TIM_TimeBaseInitTypeDef رو نمیشناسه در حالیکه هدرشو آوردم تو کتابخونه مشکل از کجاست :؟
کد:
/****************************************Copyright (c)******************************************************
** http://www.powermcu.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: main.c
** Descriptions: The TIM application function
**
**--------------------------------------------------------------------------------------------------------
** Created by: AVRman
** Created date: 2010-10-30
** Version: v1.0
** Descriptions: The original version
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
*********************************************************************************************************/
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
#include <stdio.h>
/* Private function prototypes -----------------------------------------------*/
void GPIO_Configuration(void);
void NVIC_Configuration(void);
void TIM_Configuration(void);
/*******************************************************************************
* Function Name : main
* Description : Main program
* Input : None
* Output : None
* Return : None
* Attention : None
*******************************************************************************/
int main(void)
{
GPIO_Configuration();
NVIC_Configuration();
TIM_Configuration();
/* Infinite loop */
while (1){
}
}
/*******************************************************************************
* Function Name : GPIO_Configuration
* Description : Configure GPIO Pin
* Input : None
* Output : None
* Return : None
* Attention : None
*******************************************************************************/
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB , ENABLE);
/**
* LED1 -> PB0 LED2 -> PB1
*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
/*******************************************************************************
* Function Name : TIM_Configuration
* Description : TIM_Configuration program.
* Input : None
* Output : None
* Return : None
* Attention : None
*******************************************************************************/
void TIM_Configuration(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
TIM_DeInit(TIM2);
TIM_TimeBaseStructure.TIM_Period=2000;
TIM_TimeBaseStructure.TIM_Prescaler= (36000 - 1); /* ʱÖÓÔ¤·ÖƵÊý ÀýÈ磺ʱÖÓƵÂÊ=72MHZ/(ʱÖÓÔ¤·ÖƵ+1) */
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; /* ²ÉÑù·ÖƵ */
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; /* ÏòÉϼÆÊýģʽ */
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
TIM_ClearFlag(TIM2, TIM_FLAG_Update); /* Çå³ýÒç³öÖжϱêÖ¾ */
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM2, ENABLE); /* ¿ªÆôʱÖÓ */
}
/*******************************************************************************
* Function Name : NVIC_Configuration
* Description : Configuration the nested vectored interrupt controller.
* Input : None
* Output : None
* Return : None
* Attention : None
*******************************************************************************/
void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void assert_failed(uint8_t* file, uint32_t line)
{
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* Infinite loop */
while (1)
{
}
}
#endif
/*********************************************************************************************************
END FILE
*********************************************************************************************************/