第五届-双路模拟输出

 main.c主函数部分(没写完)

/**
  ******************************************************************************
  * @file    Project/STM32F10x_StdPeriph_Template/main.c 
  * @author  MCD Application Team
  * @version V3.5.0
  * @date    08-April-2011
  * @brief   Main program body
  ******************************************************************************
  * @attention
  *
  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
  * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
  * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  *
  * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>
  ******************************************************************************
  */  

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
#include <stdio.h>
#include "lcd.h"
/* Private typedef -----------------------------------------------------------*/

/* Private define ------------------------------------------------------------*/
#define KEY1 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)
#define KEY2 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)
#define KEY3 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)
#define KEY4 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2)

#define PWM_wide 1//Êä³öÂö¿íÐͺÅ
#define PWM_lower 2//Êä³öµÍµçƽÐźÅ
/* Private macro -------------------------------------------------------------*/

/* Private variables ---------------------------------------------------------*/
uint16_t key_one_value;//¿ØÖÆPA1µÄÐźÅÊä³öģʽ,ĬÈÏģʽ»¹Ã»ÓÐÉèÖÃ

//u8 duty_A1,duty_A2,status,CH2_OPEN,CH3_OPEN;
/* Private function prototypes -----------------------------------------------*/
void KEY_init(void);
void KEY_scan(void);

void TIM2_PA1_PWM_Init(u8 duty_A1,u8 duty_A2,u8 status,u8 CH2_OPEN,u8 CH3_OPEN);
/* Private functions ---------------------------------------------------------*/


int main(void)
{
		
	while(1)
	{
		
	}

}
//°´¼ü
void KEY_init(void)
{
	
}
//°´¼üɨÃè³ÌÐò
void KEY_scan()
{
	static uint16_t keysum1 = 0, keysum2 = 0, keysum3 = 0, keysum4 = 0;
	//µÚÒ»¸ö°´¼ü,Êä³öÂö¿íµ÷ÖÆÐźţ¬Ôٴΰ´ÏÂPA³ÖÐøÊä³öµÍµçƽ
	if(KEY1 == 0)
	{
		keysum1++;
		if(keysum1 == 1)
		{
			switch(key_one_value)
			{
				case PWM_lower: key_one_value = PWM_wide;
				case PWM_wide:  key_one_value = PWM_lower;
			}		
		}
	}else
	{
		keysum1 = 0;
	}
	//µÚ¶þ¸ö°´¼ü£¬ÉèÖÃͨµÀPA1Êä³öÂö¿íµ÷ÖÆÐźŵÄÕ¼¿Õ±Èµ÷½Ú£¬
	//°´ÏÂB2£¬Í¨µÀPA1Êä³öÐźÅÕ¼¿Õ±ÈÒÔ10%²½½ø£¬½«µ÷ÕûºóµÄÊä³öÐźÅÕ¼¿Õ±È±£´æÖÁEEPROMÖÐ
	if(KEY2 == 0)
	{
		keysum2++;
		if(keysum2 == 1)
		{
			
		}
	}else
	{
		keysum2 =0;
	}
	//µÚÈý¸ö°´¼ü£¬PA2Êä³öÂö¿íµ÷ÖÆÐźţ¬Ôٴΰ´ÏÂB3£¬PA2³ÖÐøÊä³öµÍµçƽ£¬Ñ­»·
	
	//µÚËĸö°´¼üºÍµÚ2¸ö°´¼üÏàͬ
	
}
//PWM¶¨Ò庯Êý£¬dutyΪ¶¨ÒåÕ¼¿Õ±È£¬statusΪ¶¨Òå״̬,OpenÔòÊÇÊÇ·ñ´ò¿ª
void TIM2_PA1_PWM_Init(u8 duty_A1,u8 duty_A2,u8 status,u8 CH2_OPEN,u8 CH3_OPEN)
{
			u32 A1_Pluse,A2_Pluse;//¶¨ÒåÁ½¸öÂö³åʹÄÜ
			GPIO_InitTypeDef GPIO_InitStruct;
			TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
			TIM_OCInitTypeDef TIM_OCInitStruct;

			if(status)//ʱÖӵijõʼ»¯¶¨Ò壬²»±Ø¾­³£µÄ¶¨ÒåʱÖÓ
			{
					RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
					GPIO_InitStruct.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2;
					GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
					GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
					GPIO_Init(GPIOA,&GPIO_InitStruct);
				
					TIM_TimeBaseInitStruct.TIM_Period = 999;
					TIM_TimeBaseInitStruct.TIM_Prescaler = 71;
					TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;
					TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;
					TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStruct);
			}
			
			A1_Pluse = 998 * duty_A1 / 100;//Õ¼¿Õ±È³ËÒÔ¼ÆÊýÊýÖµ¼´ÎªÊä³öÂö³åÕ¼¿Õ±È
			A2_Pluse = 998 * duty_A2 / 100;
			
			//¿ªÊ¼ÉèÖÃTIM2µÄPWMģʽ£¬ÒÔÏÂΪ¶Ô¶¨Ê±Æ÷PWM¼Ä´æÆ÷½øÐÐÅä±È
			

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值