#include "STM32Lib\\stm32f10x.h" void USART_Configuration(void) //使能串口1,PA,AFIO总线 /* A9 USART1_Tx */ /* A10 USART1_Rx */ USART_InitStructure.USART_BaudRate = 9600; USART_ClockInitStructure.USART_Clock = USART_Clock_Disable; USART_ClockInit(USART1, &USART_ClockInitStructure); //使能串口2时钟 // A2 做T2X // A3 做R2X USART_InitStructure.USART_BaudRate = 9600; USART_ClockInitStructure.USART_Clock = USART_Clock_Disable; USART_ClockInit(USART2, &USART_ClockInitStructure); USART_Cmd(USART2, ENABLE); void USART1_Putc(unsigned char c) void USART1_Puts(char * str) void USART2_Putc(unsigned char c) void USART2_Puts(char * str) } |
#ifndef HAL_H //硬件初始化 //输出宏定义 #define LED2_OFF GPIO_ResetBits(GPIOA, GPIO_Pin_7) #define LED3_OFF GPIO_ResetBits(GPIOC, GPIO_Pin_7) #define LED4_OFF GPIO_ResetBits(GPIOC, GPIO_Pin_5) #define LED5_OFF GPIO_ResetBits(GPIOB, GPIO_Pin_9) #define LED6_OFF GPIO_ResetBits(GPIOB, GPIO_Pin_8) #define LED7_OFF GPIO_ResetBits(GPIOB, GPIO_Pin_5) #define LED8_OFF GPIO_ResetBits(GPIOB, GPIO_Pin_0) //串口 extern u8 flag; #endif |
#include "STM32Lib\\stm32f10x.h" void TIM_Configuration(void) /* TIM2 clock enable */ /* 基础设置*/ TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); /* 比较通道1*/ TIM_OC1Init(TIM2, &TIM_OCInitStructure); /*比较通道2 */ TIM_OC2Init(TIM2, &TIM_OCInitStructure); /* 比较通道3 */ TIM_OC3Init(TIM2, &TIM_OCInitStructure); /* 比较通道4 */ TIM_OC4Init(TIM2, &TIM_OCInitStructure); /*使能预装载*/ /* 4个通道和溢出都配置中断*/ /* 允许TIM2开始计数 */ |
#include "STM32Lib\\stm32f10x.h" void NVIC_Configuration(void) /* Configure one bit for preemption priority */ /* Timer2中断*/ /*UART1*/ |
#include "STM32Lib\\stm32f10x.h" /*允许总线CLOCK,在使用GPIO之前必须允许相应端的时钟. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); /*初始化LED输出为0*/ /* PB0,5,8,9输出 */ /* PC5,7输出*/ /*PA7,输出*/ /*PA8,输出*/ } |
hal.c
/*************************************************** #include "STM32Lib\\stm32f10x.h" //各个内部硬件模块的配置函数 //初始化GPIO //初始化中断源 //初始化串口 //初始化定时器 /********************************* } |
stm32f10x_it.c
/******************************************************************************* extern u32 count=0; if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET) //点亮LED5// } //点亮LED6// // 点亮LED7// //点亮LED8// } LED5_OFF; /******************************************************************************* /******************************************************************************* /******************************************************************************* /******************************************************************************* /******************************************************************************* /******************************************************************************* /******************************************************************************* /******************************************************************************* /******************************************************************************* void USART1_IRQHandler(void) //溢出-如果发生溢出需要先读SR,再读DR寄存器 则可清除不断入中断的问题 |
main.c
/************************************************************ #include "STM32Lib\\stm32f10x.h" void d_2_char(u32 x) ChipHalInit(); //片内硬件初始化 for(;;) } } //延迟函数 |
RCC.c
#include "STM32Lib\\stm32f10x.h" RCC_ClocksTypeDef RCC_ClockFreq; void RCC_Configuration(void) /************************************************** /* 这个配置可使外部晶振停振的时候,产生一个NMI中断,不需要用的可屏蔽掉*/ |
管理员在2009年8月13日编辑了该文章文章。 -->
上一篇:关于STM32 定时器 PWM 实时调节占空比时,预装载特性
下一篇:STM32 定时器浅谈_1
推荐阅读最新更新时间:2024-03-16 14:57