版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
STM32F103內部溫度傳感器用串口傳遞到PC上顯示程序如下:#include"stm32f10x.h"#include"stm32_eval.h"#include"stm32f10x_conf.h#include<stdio.h>#defineDR_ADDRESS((uint32_t)0x4001244C)〃ADC1DR寄存器基地址USART_InitTypeDefUSART_InitStructure;〃串口初始化結構體聲明ADC_InitTypeDefADC_InitStructure;明DMA_InitTypeDefDMA_InitStructure;聲明ADC_InitTypeDefADC_InitStructure;明DMA_InitTypeDefDMA_InitStructure;明__IOuint16_tADCConvertedValue;//ADC初始化結構體聲//DMA初始化結構體聲//在內存中聲明一個可讀可寫變量用來存放AD的轉換結果.低12位有效voidADC_GPIO_Configuration(void);staticvoidDelay_ARMJISHU(__IOuint32_tnCount){for(;nCount!=0;nCount--);}intmain(void){u16ADCConvertedValueLocal;USART_InitStructure.USART_BaudRate=115200;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;STM_EVAL_COMInit(COM1,&USART_InitStructure);/*EnableDMA1clock*/RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);DMA_DeInit(DMA1_Channel1);//開啟DMA1勺第一通道DMA_InitStructure.DMA_PeripheralBaseAddr=DR_ADDRESS;DMA_InitStructure.DMA_MemoryBaseAddr=(uint32_t)&ADCConvertedValue;DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC;//DMA的轉換模式為SRCJI式.由外設搬移到內存DMA_InitStructure.DMA_BufferSize=1;//DMA緩存大小,1個DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable;//接收一次數(shù)據(jù)后,設備地址禁止后移
DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Disable;//關閉接收一次數(shù)據(jù)后.目標內存地址后移DMA_InitStructure.DMA_PeripheralDataSize=DMA_PeripheralDataSize_HalfWord;〃定義外設數(shù)據(jù)寬度為16位DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;//DMA搬移數(shù)據(jù)尺寸,HalfWord就是為16位DMA_InitStructure.DMA_Mode=DMA_Mode_Circular;//轉換模式,循環(huán)緩存模式。DMA_InitStructure.DMA_Priority=DMA_Priority_High;//DMA優(yōu)先級高DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;//M2M模式禁用DMA_Init(DMA1_Channel1,&DMA_InitStructure);/*EnableDMA1channell*/DMA_Cmd(DMA1_Channel1,ENABLE);/*EnableADC1andGPIOCclock*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1|RCC_APB2Periph_GPIOC,ENABLE);//使能ADCf口GPIOC寸鐘/*ADC1configuration*//*ADC1configuration*/ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//獨立的轉換模式ADC_InitStructure.ADC_ScanConvMode=ENABLE;//開啟掃描模式ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;//開啟連續(xù)轉換模式ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//ADC外部開關.關閉狀態(tài)ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//對齊方式,ADC為12位中.右對齊方式ADC_InitStructure.ADC_NbrOfChannel=1;//開啟通道數(shù).1個ADC_Init(ADC1,&ADC_InitStructure);/*ADC1regularchannel13configuration*/ADC_RegularChannelConfig(ADC1,ADC_Channel_16,1,ADC_SampleTime_55Cycles5);//ADC通道組.第11個通道采樣順序1.轉換時間/*EnableADC1DMA*/ADC_DMACmd(ADC1,ENABLE);//ADC命令.使能/*EnableADC1*/ADC_TempSensorVrefintCmd(ENABLE);//使能溫度傳感器和內部參考電壓通道ADC_Cmd(ADC1,ENABLE);〃開啟ADC1/*EnableADC1resetcalibarationregister*/ADC_ResetCalibration(ADC1);//重新校準/*ChecktheendofADC1resetcalibrationregister*/while(ADC_GetResetCalibrationStatus(ADC1));//等待重新校準完成/*StartADC1calibaration*/ADC_StartCalibration(ADC1);//開始校準/*ChecktheendofADC1calibration*/while(ADC_GetCalibrationStatus(ADC1));//等待校準完成/*StartADC1SoftwareConversion*/ADC_SoftwareStartConvCmd(ADC1,ENABLE);//連續(xù)轉換開始.ADC通過DM防式不斷的更新RAME。while(1){vu16Temperature,a,b,c,d;ADCConvertedValueLocal=ADCConvertedValue;Temperature=(1.43-ADCConvertedValueLocal*3.3/4096)*1000/4.35+25;ADCConvertedValueLocal=Temperature;a=ADCConvertedValueLocal/1000;b=(ADCConvertedValueLocal-a*1000)/100;c=(ADCConvertedValueLocal-a*1000-b*100)/10;d=ADCConvertedValueLocal-a*1000-b*100-c*10;printf("\r\n當前STM32K片內部溫度為:%d%d%d%d%\n'r",a,b,c,d);Delay_ARMJISHU(8000000);}}voidADC_GPIO_Configuration(void)//ADC配置函數(shù){GPIO_InitTypeDefGPIO_InitStructure;//PC0作為模擬通道10輸入引腳GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;//管腳1GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;//輸入模式GPIO_Init(GPIOC,&GPIO_InitStructure);//GPIO組}超級終端顯示如下當前STM32芯片內部溫度為:0048r當前STM32芯片內部溫度為:0047^當前STM32芯片內部溫度為:0048^0當前STM32芯片內部溫度為二0047^當前3TM32芯片內部溫度為:0047當前STM32芯片內部溫度為二0047*0當前STM32芯片內部溫度為:0047當前STM32芯片內部溫度為二0047^當前STM32芯片內部溫度為:0047當前STM32芯片內部溫度為二00G七當前STM32芯片內部溫度為:0046^0當前STM32芯片內部溫度為:0B46X:關于一些數(shù)據(jù)格式的定義解釋:#ifndef__STM32F10x_TYPE_H#define__STM32F10x_TYPE_Htypedefsignedlongs32;typedefsignedshorts16;typedefsignedchars8;typedefsignedlongconstsc32;typedefsignedshortconstsc16;typedefsignedcharconstsc8;vs32;typedefvolatilesignedlongvs32;typedefvolatilesignedshortvs16;TOC\o"1-5"\h\ztypedefvolatilesignedcharvs8;typedefvolatilesignedlongconstvsc32;typedefvolatilesignedshortconstvsc16;typedefvolatilesignedcharconstvsc8;typedefunsignedlongu32;typedefunsignedshortu16;typedefunsignedcharu8;typedefunsignedlongconstuc32;typedefunsignedshortconstuc16;typedefunsignedcharconstuc8;typedefvolatileunsignedlongvu32;typedefvolatileunsignedshortvu16;typedefvolatileunsignedcharvu8;typedefvolatileunsignedlongconstvuc32;typedefvolatileunsignedshortconstvuc16;typedefvolatileunsignedcharconstvuc8;typedefenum{FALSE=0,TRUE=!FALSE}bool;typedefenum{RESET=0,SET=!RESET}FlagStatus,ITStatus;typedefenum{DISABLE=0,ENABLE=!DISABLE}FunctionalState;#defineIS_FUNCTIONAL_STATE(STATE)(((STATE)==DISABLE)||((STATE)==ENABLE))typedefenum{ERROR=0,SUCCESS=!ERROR}ErrorStatu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 橋梁工程總承包合同協(xié)議
- 城市綠化帶廣告牌安裝施工合同
- 鹽城市設計創(chuàng)意中心租賃合同
- 購物中心休息區(qū)地磚鋪裝協(xié)議
- 鄉(xiāng)村旅游魚塘施工合同范本
- 酒店租賃合同協(xié)議:電競比賽專用
- 環(huán)境監(jiān)測系統(tǒng)施工合同
- 物流配送招投標合同承諾書
- 城市商業(yè)街箱涵施工協(xié)議
- 建筑電氣工程皮卡租賃合同
- 專門學校情況報告
- 工業(yè)互聯(lián)網(wǎng)平臺構建
- 數(shù)學思想與方法-國家開放大學電大機考網(wǎng)考題目答案
- 杭州奧泰生物技術股份有限公司IVD研發(fā)中心建設項目環(huán)境影響報告表
- 公共衛(wèi)生事業(yè)管理專業(yè)職業(yè)生涯規(guī)劃書
- GB/T 43232-2023緊固件軸向應力超聲測量方法
- 低壓配電室的安全操作規(guī)程
- 新目標漢語口語課本2課件-第2單元
- 二手車買賣合同(標準版范本)
- 國有企業(yè)合規(guī)制度培訓
- 血液透析的醫(yī)療質量管理與持續(xù)改進
評論
0/150
提交評論