工程包含: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
|