标题:
stm32f103C8T6部分外设的使用源程序
[打印本页]
作者:
Elkeson
时间:
2019-11-17 22:58
标题:
stm32f103C8T6部分外设的使用源程序
工程包含:adc dma timer1 usart , i2c等等
单片机源程序如下:
//头文件
#include "stm32f10x.h"
#include "GPIOLIKE51.h"
#include "stm32f10x_gpio.h"
#include "clockoutput.h"
#include "i2c.h"
#include "stm32f10x_adc.h"
#include "adc.h"
#include "gpio.h"
#include "dma.h"
#include "stm32f10x_dma.h"
#include "timer.h"
#include "delay.h"
#include "usart.h"
//变量定义
u8 temp = 0;
u8 temp1 = 0;
int ADC_ConvertedValue;
float ADC_ConvertedValueLocal;
extern u16 CCR1_Val;
extern u16 CCR2_Val;
extern u16 CCR3_Val;
extern u8 sendbuf[2];
//=============================================================================
//文件名称:main
//功能概要:主函数
//参数说明:无
//函数返回:int
//=============================================================================
int main(void)
{
/************时钟配置******************/
//时钟在startup.s文件中已经设置,可在system_stm32f10x.c中查看
/**************PC13引脚输出方波***************/
GPIO_Configuration();
/**************系统时钟输出***************/
// ClockOutput_Configuration();
/**************I2C通信初始化***************/
// IIC_Init();
/***************ADC初始化*****************/
//ADC_Config();
//ADC_Config_PA2();
/***************ADC DMA初始化*****************/
// DMA_Configuration();
// ADC_Config_PA1PA2();
/***************Timer1初始化*****************/
//Timer1_Config();
/****************timer3通道初始化**********************/
//使能中断前要先打开对应外设时钟
//Timer1_Interrupt_Initial();
//Timer1_Config1();
/****************ADC temperature initial**********************/
//Temperature_Config();
/****************usart initial**********************/
//USART_Config();
/****************usart DMA initial**********************/
USART_Config();
USART_DMA_Configuration();
sendbuf[0] = 0x55;
sendbuf[1] = 0xA5;
delay_1us(100);
while (1)
{
/**************I2C通信***************/
//temp =SMBus_Read(0x55, 0x01, 1);
//temp1 =SMBus_Read(0x55, 0x02, 1);
/*********PC13灯闪烁********/
{
PCout(13)=1;
delay_1us(60000);
delay_1us(60000);
delay_1us(60000);
delay_1us(60000);
delay_1us(60000);
delay_1us(60000);
PCout(13)=0;
delay_1us(60000);
delay_1us(60000);
delay_1us(60000);
delay_1us(60000);
delay_1us(60000);
delay_1us(60000);
}
/*********ADC启动转换********/
//ADC_SoftwareStartConvCmd(ADC1, ENABLE); //软件启动
//while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC )); //等待转换完成
//ADC_ConvertedValue = ADC_GetConversionValue(ADC1); // 获取转换结果*ADC_ConvertedValue*
//ADC_ConvertedValueLocal = (float)ADC_ConvertedValue*(3.3/4096); //计算实际电压*ADC_ConvertedValueLocal*
/*********ADC DMA启动转换********/
//ADC_SoftwareStartConvCmd(ADC1, ENABLE); //软件启动
//while(!DMA_GetFlagStatus(DMA1_FLAG_TC1)); //等待转换完成
//PA0
//ADC_ConvertedValue = ADC_Value[0]; // 获取转换结果*ADC_ConvertedValue*
//ADC_ConvertedValueLocal = (float)ADC_ConvertedValue*(3.3/4096); //计算实际电压*ADC_ConvertedValueLocal*
//PA1
//ADC_ConvertedValue = ADC_Value[1]; // 获取转换结果*ADC_ConvertedValue*
//ADC_ConvertedValueLocal = (float)ADC_ConvertedValue*(3.3/4096); //计算实际电压*ADC_ConvertedValueLocal*
/*********ADC temperature using********/
//ADC_SoftwareStartConvCmd(ADC1, ENABLE); //软件启动
//while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC )); //等待转换完成
//ADC_ConvertedValue = ADC_GetConversionValue(ADC1); // 获取转换结果*ADC_ConvertedValue*
//ADC_ConvertedValueLocal = (float)(( 1.38 - ADC_ConvertedValue*3.3/4096) /0.0043 + 25); //计算实际电压*ADC_ConvertedValueLocal*
/*********usart using. send one byte test********/
//SK_UsartSendChar(0x55);
//SK_UsartSendChar(0xA5);
/*********usart DMA using. send byte test********/
if(temp == 0x01)
{
USART_Send_Data(sendbuf, 2);
}
}
}
复制代码
所有资料51hei提供下载:
Temp.7z
(191.81 KB, 下载次数: 9)
2019-11-20 15:15 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1