先上程序
- #include "main.h"
- #include "Board.h"
- /* Private includes *******************************************************/
- /* Private macro **********************************************************/
- /* printf function configs to USART1*/
- #define DEBUG_USART USART1
- #define DIV 167
- /* Private typedef ********************************************************/
- /* Private variables ******************************************************/
- /* Private function prototypes ********************************************/
- /* External variables *****************************************************/
- /* External functions *****************************************************/
- long int i;
- /*!
- * [url=home.php?mod=space&uid=247401]@brief[/url] Main program
- *
- * @param None
- *
- * @retval None
- */
-
- int main(void)
- {
- GPIO_Config_T GPIO_ConfigStruct;
- TMR_BaseConfig_T TMR_TimeBaseStruct;
- TMR_OCConfig_T OCcongigStruct;
- RCM_EnableAPB2PeriphClock(RCM_APB1_PERIPH_TMR13);
- RCM_EnableAHB1PeriphClock(RCM_AHB1_PERIPH_GPIOB|RCM_AHB1_PERIPH_GPIOA);
- /* TMR11_CH1 */
- GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_6, GPIO_AF_TMR13);
- /* Config TMR11 GPIO for output PWM */
- GPIO_ConfigStruct.pin = GPIO_PIN_6;
- GPIO_ConfigStruct.mode = GPIO_MODE_AF;
- GPIO_ConfigStruct.otype = GPIO_OTYPE_PP;
- GPIO_ConfigStruct.speed = GPIO_SPEED_100MHz;
- GPIO_Config(GPIOA, &GPIO_ConfigStruct);
-
- GPIO_ConfigStruct.pin = GPIO_PIN_3;
- GPIO_ConfigStruct.mode = GPIO_MODE_OUT;
- GPIO_ConfigStruct.otype = GPIO_OTYPE_PP;
- GPIO_ConfigStruct.speed = GPIO_SPEED_100MHz;
- GPIO_Config(GPIOB, &GPIO_ConfigStruct);
-
- /* config TMR11 */
- TMR_TimeBaseStruct.clockDivision = TMR_CLOCK_DIV_1;
- TMR_TimeBaseStruct.countMode = TMR_COUNTER_MODE_UP;
- TMR_TimeBaseStruct.division = DIV;
- TMR_TimeBaseStruct.period = 999;
- TMR_ConfigTimeBase(TMR13, &TMR_TimeBaseStruct);
- /* Configure channel1 */
- TMR_ConfigOCStructInit(&OCcongigStruct);
- OCcongigStruct.mode = TMR_OC_MODE_PWM1;
- OCcongigStruct.outputState = TMR_OC_STATE_ENABLE;
- OCcongigStruct.polarity = TMR_OC_POLARITY_HIGH;
- /* Configure Channel 1 duty cycle = 80% */
- OCcongigStruct.pulse = 800;
- TMR_ConfigOC1(TMR13, &OCcongigStruct);
- TMR_ConfigOC1Preload(TMR13, TMR_OC_PRELOAD_ENABLE);
- TMR_EnableAutoReload(TMR13);
- TMR_Enable(TMR13);
- while(1)
- {
- GPIO_SetBit(GPIOB,GPIO_PIN_3);
- for(i=0;i<100000;i++);
- GPIO_ResetBit(GPIOB,GPIO_PIN_3);
- for(i=0;i<100000;i++);
- }
- }
原理图
请问高手,哪里有错?谢谢
|