PWM_Output.c ( File view )

  • By zhyunhao 2015-01-04
  • View(s):1009
  • Download(s):77
  • Point(s): 1
			/* PWM_Output.c file
编写者:lisn3188
网址:www.chiplab7.com
作者E-mail:lisn3188@163.com
编译环境:MDK-Lite  Version: 4.23
初版时间: 2012-06-25
测试: 本程序已在第七实验室的[Captain 飞控板]上完成测试

占用STM32 资源:
1. 使用Tim3 Tim4 Tim5 定时器 产生PWM信号
2. 以下引脚
   PA0 PA1 PA2 PA3 
   PB8  PB9 
   PC6  PC7 
   引脚 用于产生PWM信号

功能:
初始化定时器 产生PWM信号
------------------------------------
 */

#include "PWM_Output.h"
#include "Quadrotor.h"
#include "fly_config.h"
#include "Fmath.h"

volatile uint8_t THROTTLE_LOCKed = 1; //电机锁定,不启动
//舵机信号 更新请求,在每个PWM周期中置1,通过主程序判断该值来决定是否更新舵机输出,
volatile uint8_t Servo_Update_Req=0;
//各个通道的当前输出值
volatile uint16_t PWM_Output_CH1,PWM_Output_CH2,PWM_Output_CH3,PWM_Output_CH4,
					PWM_Output_CH5,PWM_Output_CH6,PWM_Output_CH7,PWM_Output_CH8;


/**************************实现函数********************************************
*函数原型:		static void PWMOutput_GPIO_Config(void) 
*功  能:	    配置PWM引脚为输出,并开启相应的时钟信号 和引脚复用时钟信号  	 
*******************************************************************************/
static void PWMOutput_GPIO_Config(void) 
{

  GPIO_InitTypeDef GPIO_InitStructure;

  /* GPIOA and GPIOB clock enable */
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC, ENABLE); 

  /*GPIOA Configuration: TIM3 channel 1 and 2 as alternate function push-pull */
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;		   
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;  // 复用推挽输出
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;

  GPIO_Init(GPIOA, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_8 | GPIO_Pin_9;
  GPIO_Init(GPIOB, &GPIO_InitStructure);

  GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_TIM2);
  GPIO_PinAFConfig(GPIOA,GPIO_PinSource1,GPIO_AF_TIM2);
  GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_TIM2);
  GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_TIM2);
  
  GPIO_PinAFConfig(GPIOB,GPIO_PinSource8,GPIO_AF_TIM4);
  GPIO_PinAFConfig(GPIOB,GPIO_PinSource9,GPIO_AF_TIM4);
  	

}

/**************************实现函数********************************************
*函数原型:		static void Tim3_NVIC_Config(void)
*功  能:	    配置定时器3 的中断优先级别 	 
*******************************************************************************/
static void Tim2_NVIC_Config(void) {

 NVIC_InitTypeDef NVIC_InitStructure; 
 NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;   //选择TIM2中断
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;   //
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能
 NVIC_Init(&NVIC_InitStructure); 

}

/**************************实现函数********************************************
*函数原型:		void TIM2_IRQHandler(void)
*功  能:	    定时器中断程序 
*******************************************************************************/
void TIM2_IRQHandler(void)//定时器中断函数
{

  Servo_Update_Req = 1;	//请求舵机信号更新 告诉主程序 可以更新PWM输出了
  TIM2->SR &= 0xfffe;  //清中断标志

}

/**************************实现函数********************************************
*函数原型:		static void PWMOutput_TIMERs_Config(void)
*功  能:	    配置PWM的对应定时器 
*******************************************************************************/
static void PWMOutput_TIMERs_Config(void)
{

	TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
	TIM_OCInitTypeDef  TIM_OCInitStructure;
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 | RCC_APB1Periph_TIM3 | RCC_APB1Periph_TIM4, ENABLE); 
	
  Tim2_NVIC_Config();
	/* Time base configuration */		 
  TIM_TimeBaseStructure.TIM_Period = Servo_Period;      //PWM周期
  TIM_TimeBaseStructure.TIM_Prescaler = 84-1;	    //设置预分频:即为1MHz
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;	//设置时钟分频系数:不分频
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上计数模式

  TIM_TimeBaseStructure.TIM_Period = PWM_5_6_Period;      //PWM周期
  TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
  TIM_TimeBaseStructure.TIM_Period = PWM_1_2_3_4_Period;  //PWM周期
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

  TIM2->DIER |= 0x0001;  //使能中断	 使能定时器2的 溢出中断

  /* PWM1 Mode configuration: Channel1 */
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;	    //配置为PWM模式1
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;	
  TIM_OCInitStructure.TIM_Pulse = Servo_Neutral_position;	   //设置跳变值,当计数器计数到这个值时,电平发生跳变
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;  //当定时器计数值小于CCR1_Val时为高电平

  TIM_OC1Init(TIM2, &TIM_OCInitStructure);	 //使能通道1
  TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);

  /* PWM1 Mode configuration: Channel2 */
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;

  TIM_OC2Init(TIM2, &TIM_OCInitStructure);	  //使能通道2
  TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable);

  /* PWM1 Mode configuration: Channel3 */
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
 
  TIM_OC3Init(TIM4, &TIM_OCInitStructure);	 //使能通道3
  TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable);
	TIM_OC3Init(TIM2, &TIM_OCInitStructure);	 //使能通道3
  TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable);

  /* PWM1 Mode configuration: Channel4 */
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
	
  TIM_OC4Init(TIM4, &TIM_OCInitStructure);	//使能通道4
  TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable);
  TIM_OC4Init(TIM2, &TIM_OCInitStructure);	//使能通道4
  TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Enable);

  TIM_ARRPreloadConfig(TIM4, ENABLE);			 // 使能TIM4重载寄存器ARR
  TIM_ARRPreloadConfig(TIM2, ENABLE);			 // 使能TIM5重载寄存器ARR

  TIM_Cmd(TIM4, ENABLE);                   //使能定时器4
  TIM_Cmd(TIM2, ENABLE);                   //使能定时器5

}

/**************************实现函数********************************************
*函数原型:		void PWM_Output_Initial(void)
*功  能:	    PWM输出 初始化。
*******************************************************************************/
void PWM_Output_Initial(void)
{

	PWMOutput_GPIO_Config();
	PWMOutput_TIMERs_Config();
	Set_PWMOuput_CH1(PWMOuput_CH1_Default);	 // 放默认值输出
	Set_PWMOuput_CH2(PWMOuput_CH2_Default);
	Set_PWMOuput_CH3(PWMOuput_CH3_Default);
	Set_PWMOuput_CH4(PWMOuput_CH4_Default);
	Set_PWMOuput_CH5(PWMOuput_CH5_Default);
	Set_PWMOuput_CH6(PWMOuput_CH6_Default);

}

/**************************实现函数********************************************
*函数原型:		void PWM_Output_Set_default(void)
*功  能:	    PWM输出 默认值
*******************************************************************************/
void PWM_Output_Set_default(void) {


	Set_PWMOuput_CH1(PWMOuput_CH1_Default);
	Set_PWMOuput_CH2(PWMOuput_CH2_Default);
	Set_PWMOuput_CH3(PWMOuput_CH3_Default);
	Set_PWMOuput_CH4(PWMOuput_CH4_Default);
	Set_PWMOuput_CH5(PWMOuput_CH5_Default);
	Set_PWMOuput_CH6(PWMOuput_CH6_Default);


}

#define Limit_Max     (int16_t)20   //每秒约计算 600 次 
int16_t Last_PID_ROLL,Last_PID_PITCH,Last_PID_YAW;

// 将PID计算的值进行 平滑处理。动作不要太生猛了
void PWM_PID_Smooth(void){

   PID_ROLL = Last_PID_ROLL + Math_Constrain((PID_ROLL - Last_PID_ROLL),-Limit_Max,+Limit_Max);
   PID_PITCH = Last_PID_PITCH + Math_Constrain((PID_PITCH - Last_PID_PITCH),-Limit_Max,+Limit_Max);
   PID_YAW = Last_PID_YAW + Math_Constrain((PID_YAW - Last_PID_YAW),-Limit_Max,+Limit_Max);
   
   //将这一次的值保存,以便下次计算时使用
   Last_PID_ROLL = PID_ROLL;
   Last_PID_PITCH = PID_PITCH;
   Last_PID_YAW	= PID_YAW;

}

//将 四轴计算出来的控制量进行 混合输出
//根据不同的飞行器,使用不同的混合方法
#define PIDMIX(X,Y,Z) THROTTLE + PID_ROLL*X + PID_PITCH*Y + Yaw_DIRECT * PID_YAW*Z
#define Min_PWM_Out  800    //us
#define Max_PWM_Out  2200    //us
int16_t motor[8] = {
1000,1000,1000,1000,1000,1000,1000,1000
};
void PWM_Write_Motors(void) {


#if (Remote_Config_Enable == 1)	 //条件编译,Remote_Config_Enable的定义见fly_config.h
  if(Quadrotor_Mode =
...
...
(Please download the complete source code to view)
			
...
Expand> <Close

Want complete source code? Download it here

Point(s): 1

Download
0 lines left, continue to read
Sponsored links

File list

Tips: You can preview the content of files by clicking file names^_^
Name Size Date
01.97 kB
Autoploit.pdf77.58 kB2013-02-21|20:43
Captain_F405.map339.77 kB2014-10-09|10:09
Captain_F405.plg75.58 kB2013-04-12|21:31
Captain_F405.sct479.00 B2013-03-05|13:51
Captain_F405.tra3.18 kB2013-03-05|14:44
Captain_F405.uvgui.Administrator682.33 kB2014-02-28|14:33
Captain_F405.uvgui.haoyun91.55 kB2014-12-28|17:15
Captain_F405.uvgui.ZhaoLong109.23 kB2014-10-09|10:16
Captain_F405.uvgui_Administrator.bak679.11 kB2014-02-27|12:40
Captain_F405.uvgui_haoyun.bak88.97 kB2014-12-28|17:13
Captain_F405.uvgui_ZhaoLong.bak106.65 kB2014-10-06|20:29
Captain_F405.uvopt29.78 kB2014-12-28|17:15
Captain_F405.uvproj24.15 kB2014-02-20|23:08
Captain_F405_Captain.dep43.10 kB2014-12-28|17:15
Captain_F405_Target79.00 B2013-03-05|12:09
Captain_F405_uvopt.bak29.78 kB2014-12-28|17:13
Captain_F405_uvproj.bak24.58 kB2013-12-24|16:53
01.97 kB
common.h847.00 B2014-02-20|22:47
datamap.h2.27 kB2013-12-14|13:44
fly_config.h1.29 kB2013-09-03|15:25
debug.ini112.00 B2012-12-03|19:51
ExtDll.iex19.00 B2013-03-05|14:23
01.97 kB
cc936.c707.25 kB2013-12-24|16:07
diskio.c4.79 kB2013-12-24|17:38
diskio.h1.82 kB2013-12-24|11:26
FAT_driver.c1.40 kB2013-12-25|13:38
FAT_driver.h444.00 B2013-12-24|14:12
ff.c139.67 kB2013-12-25|12:30
ff.h11.79 kB2013-12-25|12:30
ffconf.h7.45 kB2013-12-24|16:35
integer.h936.00 B2013-12-24|16:10
SD_card.h2.42 kB2013-12-24|11:26
SD_init.c7.96 kB2013-12-25|11:56
01.97 kB
01.97 kB
STM32ADC.c6.19 kB2012-12-03|20:45
STM32ADC.h415.00 B2013-03-05|12:15
01.97 kB
AT45DB.c16.05 kB2014-02-27|10:06
AT45DB.h3.24 kB2014-02-27|10:06
Autoploit.pdf77.58 kB2013-02-21|20:43
01.97 kB
GCS_Protocol.c18.85 kB2013-12-24|14:23
GCS_Protocol.h1.56 kB2013-12-09|13:19
01.97 kB
GPS.c15.68 kB2014-01-06|11:56
GPS.h1.40 kB2014-01-06|11:56
01.97 kB
HMC5883L.c10.59 kB2013-12-14|14:11
HMC5883L.h1.35 kB2013-05-28|11:44
01.97 kB
IMU.c10.80 kB2014-02-27|11:23
IMU.h620.00 B2013-12-14|13:54
01.97 kB
LED.c4.09 kB2013-12-18|20:30
LED.h1.02 kB2013-12-24|15:03
01.97 kB
LSM303D.c5.37 kB2014-02-27|11:36
LSM303D.h5.49 kB2014-02-26|22:21
01.97 kB
Fmath.c1.15 kB2013-09-02|22:02
Fmath.h589.00 B2012-09-17|22:46
01.97 kB
MAX21000.c2.97 kB2014-02-26|22:20
MAX21000.h452.00 B2014-02-26|22:20
01.97 kB
MPU6050.c11.41 kB2013-12-24|10:19
MPU6050.h14.56 kB2013-09-09|20:38
01.97 kB
MS5611.c11.44 kB2013-12-16|19:11
MS5611.h1.71 kB2013-09-02|21:00
01.97 kB
Pid.c3.45 kB2013-12-14|12:31
pid.h1.40 kB2014-02-27|11:16
01.97 kB
PWM_Input.c10.95 kB2013-09-02|20:20
PWM_Input.h817.00 B2013-03-05|12:16
01.97 kB
PWM_Output.c12.37 kB2013-12-24|14:23
PWM_Output.h1.90 kB2013-12-24|14:23
01.97 kB
Quadrotor.c20.75 kB2014-02-27|11:23
Quadrotor.h1.18 kB2013-12-16|21:00
01.97 kB
delay.c2.75 kB2013-12-09|14:32
delay.h285.00 B2013-03-05|12:18
IOI2C.c9.49 kB2012-11-16|09:37
IOI2C.h2.10 kB2013-03-05|12:18
SPI3.c3.16 kB2014-02-27|11:55
SPI3.h327.00 B2013-12-18|21:07
01.97 kB
UART1.c9.06 kB2013-12-16|20:54
UART1.h676.00 B2013-12-09|13:19
01.97 kB
Ultrasonic.c6.64 kB2013-12-18|20:16
Ultrasonic.h387.00 B2013-03-05|13:51
01.97 kB
OSQMem.c4.30 kB2013-12-09|13:46
OSQMem.h1,006.00 B2013-12-09|13:42
USART1ConFig.c12.31 kB2013-12-09|12:05
USART1DMATX.c7.08 kB2014-12-23|11:42
USART1DMATX.h697.00 B2013-12-09|13:48
JLinkLog.txt203.61 kB2014-09-30|11:55
JLinkSettings.ini573.00 B2013-03-05|13:51
01.97 kB
01.97 kB
01.97 kB
arm_common_tables.h1.09 kB2011-10-28|10:31
arm_math.h234.69 kB2011-10-28|10:31
core_cm0.h31.20 kB2011-10-28|10:31
core_cm3.h68.09 kB2011-10-28|10:31
core_cm4.h77.42 kB2011-10-28|10:31
core_cm4_simd.h23.42 kB2011-10-28|10:31
core_cmFunc.h15.32 kB2011-10-28|10:31
core_cmInstr.h15.73 kB2011-10-28|10:31
misc.h6.63 kB2011-10-28|10:31
stm32f4xx_adc.h31.66 kB2011-10-28|10:31
stm32f4xx_can.h26.55 kB2011-10-28|10:31
stm32f4xx_crc.h2.23 kB2011-10-28|10:31
stm32f4xx_cryp.h12.23 kB2011-10-28|10:31
stm32f4xx_dac.h14.47 kB2011-10-28|10:31
stm32f4xx_dbgmcu.h4.07 kB2011-10-28|10:31
stm32f4xx_dcmi.h12.54 kB2011-10-28|10:31
stm32f4xx_dma.h28.08 kB2011-10-28|10:31
stm32f4xx_exti.h7.70 kB2011-10-28|10:31
stm32f4xx_flash.h14.12 kB2011-10-28|10:31
stm32f4xx_fsmc.h26.41 kB2011-10-28|10:31
stm32f4xx_gpio.h17.16 kB2011-10-28|10:31
stm32f4xx_hash.h8.74 kB2011-10-28|10:31
stm32f4xx_i2c.h30.78 kB2011-10-28|10:31
stm32f4xx_iwdg.h4.09 kB2011-10-28|10:31
stm32f4xx_pwr.h5.88 kB2011-10-28|10:31
stm32f4xx_rcc.h24.16 kB2011-10-28|10:31
stm32f4xx_rng.h3.74 kB2011-10-28|10:31
stm32f4xx_rtc.h39.47 kB2011-10-28|10:31
stm32f4xx_sdio.h22.11 kB2011-10-28|10:31
stm32f4xx_spi.h20.17 kB2011-10-28|10:31
stm32f4xx_syscfg.h6.93 kB2011-10-28|10:31
stm32f4xx_tim.h50.35 kB2011-10-28|10:31
stm32f4xx_usart.h17.26 kB2011-10-28|10:31
stm32f4xx_wwdg.h3.33 kB2011-10-28|10:31
01.97 kB
misc.c11.05 kB2011-10-28|10:31
stm32f4xx_adc.c66.67 kB2011-10-28|10:31
stm32f4xx_can.c58.52 kB2011-10-28|10:31
stm32f4xx_crc.c3.38 kB2011-10-28|10:31
stm32f4xx_cryp.c31.82 kB2011-10-28|10:31
stm32f4xx_cryp_aes.c21.14 kB2011-10-28|10:31
stm32f4xx_cryp_des.c9.14 kB2011-10-28|10:31
stm32f4xx_cryp_tdes.c9.85 kB2011-10-28|10:31
stm32f4xx_dac.c26.36 kB2011-10-28|10:31
stm32f4xx_dbgmcu.c6.52 kB2011-10-28|10:31
stm32f4xx_dcmi.c18.42 kB2011-10-28|10:31
stm32f4xx_dma.c51.33 kB2011-10-28|10:31
stm32f4xx_exti.c9.98 kB2011-10-28|10:31
stm32f4xx_flash.c37.02 kB2011-10-28|10:31
stm32f4xx_fsmc.c40.78 kB2011-10-28|10:31
stm32f4xx_gpio.c20.53 kB2011-10-28|10:31
stm32f4xx_hash.c25.48 kB2011-10-28|10:31
stm32f4xx_hash_md5.c9.32 kB2011-10-28|10:31
stm32f4xx_hash_sha1.c9.51 kB2011-10-28|10:31
stm32f4xx_i2c.c51.45 kB2011-10-28|10:31
stm32f4xx_iwdg.c9.32 kB2011-10-28|10:31
stm32f4xx_pwr.c24.67 kB2011-10-28|10:31
stm32f4xx_rcc.c72.90 kB2011-10-28|10:31
stm32f4xx_rng.c13.68 kB2011-10-28|10:31
stm32f4xx_rtc.c101.15 kB2011-10-28|10:31
stm32f4xx_sdio.c38.77 kB2011-10-28|10:31
stm32f4xx_spi.c50.51 kB2011-10-28|10:31
stm32f4xx_syscfg.c7.30 kB2011-10-28|10:31
stm32f4xx_tim.c122.42 kB2011-10-28|10:31
stm32f4xx_usart.c55.35 kB2011-10-28|10:31
stm32f4xx_wwdg.c10.41 kB2011-10-28|10:31
01.97 kB
01.97 kB
at45db.crf456.46 kB2014-09-30|11:21
at45db.d2.91 kB2014-09-30|11:21
at45db.o500.02 kB2014-09-30|11:21
Captain_F405.axf660.84 kB2014-10-09|10:09
Captain_F405.hex166.59 kB2014-10-09|10:09
Captain_F405.htm203.60 kB2014-10-09|10:09
Captain_F405.lnp1.34 kB2014-10-09|10:09
Captain_F405.plg203.00 B2014-12-28|17:15
Captain_F405.sct479.00 B2013-04-12|20:18
Captain_F405.tra4.46 kB2014-10-09|10:09
cc936.crf6.64 kB2013-12-24|16:12
cc936.d132.00 B2013-12-24|16:12
cc936.o185.13 kB2013-12-24|16:12
cc936.__i943.00 B2013-12-24|16:12
delay.crf416.12 kB2014-09-30|11:22
delay.d1.73 kB2014-09-30|11:22
delay.o440.09 kB2014-09-30|11:22
diskio.crf425.14 kB2014-09-30|11:22
diskio.d1.87 kB2014-09-30|11:22
diskio.o451.17 kB2014-09-30|11:22
ExtDll.iex19.00 B2014-02-27|10:02
fat_driver.crf425.40 kB2014-09-30|11:22
fat_driver.d2.08 kB2014-09-30|11:22
fat_driver.o452.20 kB2014-09-30|11:22
ff.crf37.21 kB2014-09-30|11:22
ff.d199.00 B2014-09-30|11:22
ff.o98.88 kB2014-09-30|11:22
fmath.crf417.35 kB2014-09-30|11:22
fmath.d1.76 kB2014-09-30|11:22
fmath.o443.82 kB2014-09-30|11:22
gcs_protocol.crf460.35 kB2014-09-30|11:22
gcs_protocol.d3.53 kB2014-09-30|11:22
gcs_protocol.o497.80 kB2014-09-30|11:22
gps.crf456.10 kB2014-09-30|11:21
gps.d2.89 kB2014-09-30|11:21
gps.o499.18 kB2014-09-30|11:21
hmc5883l.crf455.14 kB2014-02-20|22:47
hmc5883l.d3.06 kB2014-02-20|22:47
hmc5883l.o498.88 kB2014-02-20|22:47
hmc5883l.__i990.00 B2014-02-20|22:47
imu.crf457.10 kB2014-09-30|11:21
imu.d2.77 kB2014-09-30|11:21
imu.o495.16 kB2014-09-30|11:21
ioi2c.crf421.17 kB2014-09-30|11:22
ioi2c.d1.78 kB2014-09-30|11:22
ioi2c.o459.73 kB2014-09-30|11:22
led.crf418.07 kB2014-09-30|11:21
led.d1.69 kB2014-09-30|11:21
led.o441.42 kB2014-09-30|11:21
lsm303d.crf453.87 kB2014-09-30|11:22
lsm303d.d3.03 kB2014-09-30|11:22
lsm303d.o488.79 kB2014-09-30|11:22
main.crf463.30 kB2014-09-30|11:21
main.d2.99 kB2014-09-30|11:21
main.o492.65 kB2014-09-30|11:21
max21000.crf453.19 kB2014-09-30|11:22
max21000.d3.09 kB2014-09-30|11:22
max21000.o483.38 kB2014-09-30|11:22
misc.crf416.02 kB2014-09-30|11:21
misc.d1.66 kB2014-09-30|11:21
misc.o440.02 kB2014-09-30|11:21
mpu6050.crf470.47 kB2014-02-20|22:47
mpu6050.d3.05 kB2014-02-20|22:47
mpu6050.o510.14 kB2014-02-20|22:47
mpu6050.__i985.00 B2014-02-20|22:47
ms5611.crf455.11 kB2014-09-30|11:21
ms5611.d2.91 kB2014-09-30|11:21
ms5611.o499.88 kB2014-09-30|11:21
osqmem.crf420.87 kB2014-09-30|11:22
osqmem.d1.82 kB2014-09-30|11:22
osqmem.o443.41 kB2014-09-30|11:22
pid.crf3.46 kB2014-09-30|11:22
pid.d84.00 B2014-09-30|11:22
pid.o24.76 kB2014-09-30|11:22
pwm_input.crf420.54 kB2014-09-30|11:21
pwm_input.d1.99 kB2014-09-30|11:21
pwm_input.o453.93 kB2014-09-30|11:21
pwm_output.crf458.55 kB2014-09-30|11:22
pwm_output.d3.32 kB2014-09-30|11:22
pwm_output.o490.34 kB2014-09-30|11:22
quadrotor.crf458.90 kB2014-09-30|11:22
quadrotor.d3.26 kB2014-09-30|11:22
quadrotor.o502.92 kB2014-09-30|11:22
sd_init.crf421.82 kB2014-09-30|11:22
sd_init.d1.83 kB2014-09-30|11:22
sd_init.o464.06 kB2014-09-30|11:22
spi3.crf452.77 kB2014-09-30|11:22
spi3.d2.79 kB2014-09-30|11:22
spi3.o479.34 kB2014-09-30|11:22
startup_stm32f4xx.d59.00 B2014-09-30|11:21
startup_stm32f4xx.o7.73 kB2014-09-30|11:21
stm32adc.crf416.63 kB2014-09-30|11:21
stm32adc.d1.84 kB2014-09-30|11:21
stm32adc.o444.02 kB2014-09-30|11:21
stm32f4xx_adc.crf422.59 kB2014-09-30|11:21
stm32f4xx_adc.d2.01 kB2014-09-30|11:21
stm32f4xx_adc.o487.58 kB2014-09-30|11:21
stm32f4xx_dbgmcu.crf415.63 kB2014-09-30|11:21
stm32f4xx_dbgmcu.d2.12 kB2014-09-30|11:21
stm32f4xx_dbgmcu.o440.03 kB2014-09-30|11:21
stm32f4xx_dcmi.crf417.75 kB2014-09-30|11:21
stm32f4xx_dcmi.d2.04 kB2014-09-30|11:21
stm32f4xx_dcmi.o453.16 kB2014-09-30|11:21
stm32f4xx_dma.crf422.48 kB2014-09-30|11:21
stm32f4xx_dma.d2.01 kB2014-09-30|11:21
stm32f4xx_dma.o461.39 kB2014-09-30|11:21
stm32f4xx_exti.crf416.59 kB2014-09-30|11:21
stm32f4xx_exti.d2.04 kB2014-09-30|11:21
stm32f4xx_exti.o444.07 kB2014-09-30|11:21
stm32f4xx_flash.crf420.54 kB2014-09-30|11:21
stm32f4xx_flash.d2.08 kB2014-09-30|11:21
stm32f4xx_flash.o475.34 kB2014-09-30|11:21
stm32f4xx_gpio.crf417.89 kB2014-09-30|11:21
stm32f4xx_gpio.d2.04 kB2014-09-30|11:21
stm32f4xx_gpio.o453.07 kB2014-09-30|11:21
stm32f4xx_it.crf415.49 kB2014-09-30|11:21
stm32f4xx_it.d1.97 kB2014-09-30|11:21
stm32f4xx_it.o444.81 kB2014-09-30|11:21
stm32f4xx_pwr.crf417.44 kB2014-09-30|11:21
stm32f4xx_pwr.d2.01 kB2014-09-30|11:21
stm32f4xx_pwr.o449.88 kB2014-09-30|11:21
stm32f4xx_rcc.crf424.55 kB2014-09-30|11:21
stm32f4xx_rcc.d2.01 kB2014-09-30|11:21
stm32f4xx_rcc.o495.22 kB2014-09-30|11:21
stm32f4xx_rng.crf415.92 kB2014-09-30|11:21
stm32f4xx_rng.d2.01 kB2014-09-30|11:21
stm32f4xx_rng.o443.76 kB2014-09-30|11:21
stm32f4xx_rtc.crf433.11 kB2014-09-30|11:21
stm32f4xx_rtc.d2.01 kB2014-09-30|11:21
stm32f4xx_rtc.o516.53 kB2014-09-30|11:21
stm32f4xx_sdio.crf419.94 kB2014-09-30|11:21
stm32f4xx_sdio.d2.04 kB2014-09-30|11:21
stm32f4xx_sdio.o474.00 kB2014-09-30|11:21
stm32f4xx_spi.crf420.43 kB2014-09-30|11:21
stm32f4xx_spi.d2.01 kB2014-09-30|11:21
stm32f4xx_spi.o468.64 kB2014-09-30|11:21
stm32f4xx_syscfg.crf416.09 kB2014-09-30|11:21
stm32f4xx_syscfg.d2.12 kB2014-09-30|11:21
stm32f4xx_syscfg.o441.90 kB2014-09-30|11:21
stm32f4xx_tim.crf435.53 kB2014-09-30|11:21
stm32f4xx_tim.d2.01 kB2014-09-30|11:21
stm32f4xx_tim.o563.30 kB2014-09-30|11:21
stm32f4xx_usart.crf420.95 kB2014-09-30|11:21
stm32f4xx_usart.d2.08 kB2014-09-30|11:21
stm32f4xx_usart.o474.46 kB2014-09-30|11:21
stm32f4xx_wwdg.crf416.16 kB2014-09-30|11:21
stm32f4xx_wwdg.d2.04 kB2014-09-30|11:21
stm32f4xx_wwdg.o443.88 kB2014-09-30|11:21
system_stm32f4xx.crf417.16 kB2014-09-30|11:21
system_stm32f4xx.d2.06 kB2014-09-30|11:21
system_stm32f4xx.o438.50 kB2014-09-30|11:21
uart1.crf455.77 kB2014-09-30|11:22
uart1.d2.97 kB2014-09-30|11:22
uart1.o490.19 kB2014-09-30|11:22
ultrasonic.crf420.98 kB2014-09-30|11:22
ultrasonic.d2.09 kB2014-09-30|11:22
ultrasonic.o451.47 kB2014-09-30|11:22
usart1dmatx.crf418.27 kB2014-09-30|11:22
usart1dmatx.d2.02 kB2014-09-30|11:22
usart1dmatx.o444.86 kB2014-09-30|11:22
Protel76.01 kB2013-11-26|21:29
01.97 kB
startup_stm32f4xx.s28.82 kB2011-10-28|10:31
system_stm32f4xx.c21.36 kB2013-06-17|19:09
system_stm32f4xx.h2.05 kB2011-10-28|10:31
startup_stm32f4xx.lst73.83 kB2014-09-30|11:21
01.97 kB
main.c9.82 kB2014-02-27|11:56
main.h1.86 kB2012-11-15|11:46
Read_Me.txt6.96 kB2013-12-16|21:46
stm32f4xx_conf.h3.71 kB2013-03-05|14:42
stm32f4xx_it.c4.34 kB2013-03-05|12:05
stm32f4xx_it.h2.00 kB2013-03-05|12:06
...
Sponsored links

PWM_Output.c (12.86 MB)

Need 1 point
Your Point(s)

Your Point isn't enough.

Get point immediately by PayPal

More(Debit card / Credit card / PayPal Credit / Online Banking)

Submit your source codes. Get more point

LOGIN

Don't have an account? Register now
Need any help?
Mail to: support@codeforge.com

切换到中文版?

CodeForge Chinese Version
CodeForge English Version

Where are you going?

^_^"Oops ...

Sorry!This guy is mysterious, its blog hasn't been opened, try another, please!
OK

Warm tip!

CodeForge to FavoriteFavorite by Ctrl+D