AD 转换器实验


    齐 鲁 理 工 学 院
    实 验 报 告

    课程名称: 微型计算机控制技术 时间: 20201105 点: D203

    班级: 2017级机制3班 姓名: 杨帆 学号: 171031010304

    实验项目名称: AD 转换器实验

    实验指导教师: 赵保华 实验成绩评定:

    实验目
    ü通实验掌握 STM32 AD 转换器功作
    掌握 STM32AD 转换器配置
    二 实验设备
    ü硬件:信盈达STM32 实验台STlink 仿真器套件PC 机串口连接线
    软件:KEIL for ARM(MDK)集成开发环境串口调试助手Windows 7810XP
    三 实验容
    利 ADC 第 1 通道信盈达CotexM3 实验台单圈电位器电压值作 AD 转换采连续转换模式ADC 转换结果通串口发送PC显示
    四 实验原理


    五 软件程序设计
    1程序完成工作:
    移植:
    1)移植核定时器实现精确延时sys_tickc sys_tickh
    配置ADC
    配置 GPIO 口 PA1配置 ADC 第 1 采样通道
    设置 ADC ADC_IN1 设置连续转换模式
    配置串口相关发送功
    利串口发送 AD 转换结果
    3 观察实验结果
    VER+VDDSVERF—GND跳线帽连起旋转电位器 AD 输入旋钮串口输出数值断变化
    367 实验参考程序
    mainc参考程序:
    #include stm32f10xh
    #include stdioh
    #include uarth
    #include adch
    #include sys_tickh
    #include NVICh

    int main(void)
    {
    NVIC_Config() NVIC中断理初始化
    SysTickConfig() 滴答时钟初始化实现精确延时
    UART1_Init() 串口1初始化
    Adc_Init() ADC初始化
    while(1)
    {
    Adc_test() ADC测试函数印滑动变阻器电压值
    Delay_ms(2000)精确延时2000ms
    }
    }

    adcc参考程序:
    #include stm32f10xh
    #include adch
    #include sys_tickh
    #include stdioh

    adc初始化
    void Adc_Init(void)
    {
    GPIO_InitTypeDef GPIO_InitStructure
    ADC_InitTypeDef ADC_InitStructure

    开启GPIO口ADC时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1ENABLE)
    ADC采样分频 728 9
    RCC_ADCCLKConfig(RCC_PCLK2_Div8)

    设置ADC输入脚PA1
    GPIO_InitStructureGPIO_Pin GPIO_Pin_1
    GPIO_InitStructureGPIO_Mode GPIO_Mode_AIN模拟输入引脚
    GPIO_Init(GPIOA&GPIO_InitStructure)

    ADC_InitStructureADC_Mode ADC_Mode_IndependentADC独立模式
    ADC_InitStructureADC_ContinuousConvMode DISABLE单次循环模式连续循环模式 DISABLE单次循环
    ADC_InitStructureADC_ScanConvMode DISABLE 通道单通道 DISABLE单通道
    ADC_InitStructureADC_ExternalTrigConv ADC_ExternalTrigConv_None事件触发软件触发
    ADC_InitStructureADC_DataAlign ADC_DataAlign_Right数右齐 低12位
    ADC_InitStructureADC_NbrOfChannel 1序转换规组通道数目

    ADC_Init(ADC1&ADC_InitStructure) 相关寄存器赋值

    ADC_Cmd(ADC1ENABLE) 开启ADC1

    ADC_ResetCalibration(ADC1) 复位校准初始化校准寄存器
    while(ADC_GetResetCalibrationStatus(ADC1) SET)

    ADC_StartCalibration(ADC1) AD校准
    while(ADC_GetCalibrationStatus(ADC1) SET)


    }
    ADC值
    void Get_adcvalue(u8 channelu16 *value)
    {
    设置指定ADC规组通道序列采样时间
    ADC_RegularChannelConfig(ADC1channel1ADC_SampleTime_239Cycles5)

    软件启动ADC转换
    ADC_SoftwareStartConvCmd(ADC1ENABLE)

    等ADC转换完成
    while(ADC_GetFlagStatus(ADC1ADC_FLAG_EOC) SET)

    *value ADC_GetConversionValue(ADC1)
    }


    *
    测试读取外部滑动变阻器电压值
    *
    void Adc_test(void)
    {
    u16 temp 0
    float ad_value
    Get_adcvalue(1&temp)获取通道1值
    printf(#x\r\ntemp)
    ad_value (33*(float)temp)40960转换实际电压值
    printf(f\r\nad_value)
    Delay_ms(500)
    }

    adch参考程序:
    #ifndef _ADC_H_
    #define _ADC_H_
    #include stm32f10xh
    void Adc_Init(void)
    void Get_adcvalue(u8 channelu16 *value)
    void Adc_test(void)
    #endif

    sys_tickc参考程序
    #include stm32f10xh
    #include core_cm3h

    #include stdioh
    #include stdlibh

    #include uarth
    #include adch
    #include sys_tickh
    #include NVICh

    *
    static __INLINE uint32_t SysTick_Config(uint32_t ticks)
    装载定时时间值
    void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)
    设置滴答时钟时钟频率

    目:滴答时钟形成1us定时器
    1us T*(1f)
    T装载数
    f滴答时钟运行时钟频率

    1s 1000ms
    1ms 1000us
    1s 1000000us
    1M 1000000
    11M 1us
    t 172M 172us
    1us 72 * t
    SystemCoreClock1000000 1us
    SystemCoreClock100000 10us
    SystemCoreClock10000 100us
    SystemCoreClock1000 1ms
    SysTick>CTRL | SysTick_CTRL_ENABLE_Msk开滴答时钟

    SysTick>CTRL & ~SysTick_CTRL_ENABLE_Msk关闭滴答时钟
    *
    ****************************************************
    函数名:SysTickConfig
    形参:
    返回值:
    函数功:滴答时钟初始化
    ****************************************************
    void SysTickConfig(void)
    {
    配置72Mhz时钟
    t 172M 172us
    SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK)
    if(SysTick_Config(SystemCoreClock1000000) 1)赋初值
    { 72
    while(1)
    }

    关闭滴答时钟
    SysTick>CTRL & ~SysTick_CTRL_ENABLE_Msk
    SysTick>CTRL & ~0x01 0xfe 1111 1110
    SysTick>CTRL | 0x01
    某位写0位(&)
    某位写1位(|)
    }
    ****************************************************
    函数名:Delay_us
    形参:time代表延时时间(单位us)
    返回值:
    函数功:精确us延时函数
    ****************************************************
    u32 TimeDelay 0
    void Delay_us(u32 time)
    {
    TimeDelay time
    SysTick>CTRL | SysTick_CTRL_ENABLE_Msk

    while(TimeDelay 0)
    SysTick>CTRL & ~SysTick_CTRL_ENABLE_Msk
    }
    ****************************************************
    函数名:Delay_ms
    形参:time代表延时时间(单位ms)
    返回值:
    函数功:精确ms延时函数
    ****************************************************
    void Delay_ms(u32 time)
    {
    TimeDelay time*1000
    SysTick>CTRL | SysTick_CTRL_ENABLE_Msk

    while(TimeDelay 0)
    SysTick>CTRL & ~SysTick_CTRL_ENABLE_Msk
    }
    ****************************************************
    函数名:SysTick_Handler
    形参:
    返回值:
    函数功:滴答时钟中断服务函数
    ****************************************************
    void SysTick_Handler(void)
    {
    if(TimeDelay > 0)
    TimeDelay
    }

    sys_tickh参考程序
    #ifndef _SYS_TICK_H_
    #define _SYS_TICK_H_
    #include includesh

    #include stm32f10xh
    void SysTickConfig(void)
    void Delay_us(u32 time)
    void Delay_ms(u32 time)
    #endif

    Uarth 参考程序
    #ifndef _UART_H_
    #define _UART_H_
    void UART1_Init(void)串口1初始化
    void USART1_Echo(void)串口1回显函数
    void Show_Logo(void) 终端显示LOGO
    #endif

    NVICc
    #include NVICh
    #include stm32f10xh
    #include core_cm3h
    ****************************************************
    函数名:NVIC_Config
    形参:
    返回值:
    函数功:响应中断抢占中断分组
    ****************************************************
    void NVIC_Config(void)响应中断抢占中断分组
    {
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2)
    }

    NVICh
    #ifndef _NVIC_H_
    #define _NVIC_H_
    void NVIC_Config(void)响应中断抢占中断分组
    #endif

    六 实验操作步骤
    实验操作步骤
    准备实验环境 STlink 仿真器连接 信盈达STM32 实验台板 JTAG 接口 实验台附带USB数线连接实验台板PC
    新建工程编写程序完成软件设计
    新建工程保存文件夹复制相应库文件
    开发环境中新建工程配置工程选项
    新建程序代码文件添加工程完成程序编码误程序载开发板 Flash 中 RESET 键复位 添加前面实验程序中uarth uartc nvich nvicc
    PC 机运行串口调试助手(波特率 1152001 位停止位校验位硬件流控制)观察实验现象注意选择Use Microlib

    七 实验结果:


    八 心体会
    通次实验学知识学通实验掌握 STM32 AD 转换器功作掌握 STM32AD 转换器配置感谢老师指导学帮助
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 4 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    The Most Impressive Ad I Have ever Seen

    The Most Impressive Ad I've ever Seen The most impressive advertisement that I have ever seen i...

    15年前   
    17762    0

    客户总监AD职位说明书

    客户总监AD职位说明书  岗位描述:  1、负责制定、执行公司年度广告经营计划,监督实施全过程,完成业绩指标;  2、负责管理和培训部门业务人员,安排并指导部门日常工作;  3、建设和建立与相...

    12年前   
    693    0

    SQLserver实验实验6实验6答案

    第7章 创建数据类型、表报告书名称实验7-2创建数据类型和表姓名指导教师学号日期任务清单l 场景Adventure Works 的销售经理请求修改公司数据库,以包含有关已退货物和已退款销售的...

    3年前   
    1010    0

    四年级上册数学总复习资料-迅捷PDF转换器

    四年级上 数学知识点梳理第一单元:大数的认识大水1厂W序表10 个一万是十万,10 个十万是一百万,10 个一百万是一千万,10 个一千万是一 亿,10 个一亿是十亿,10个十亿是一百亿,10...

    3年前   
    536    0

    实验八

    实 验 报 告课程名称: SQL Server 数据库基础 任课教师: 池宗琳 实验名称: 存储过程 年级、专业: ...

    4年前   
    592    0

    实验六

    实 验 报 告课程名称: SQL Server 数据库基础 任课教师: 池宗琳 实验名称: 视图、规则和索引的使用 年级、专业: 2018级电...

    4年前   
    654    0

    电路实验

    1.掌握系统误差和随机误差的概念2.学会分析系统误差和随机误差的方法

    4年前   
    1151    0

    工法样板展示标准-006947afc0c708a1284ac850ad02de80d4d806d6

    九巨龙集团工法样板展示标准u 实物样板的设置说明:在施工场区内适当位置设置实物样板及展板说明:建筑面积在30000㎡以上的项目、住宅小区或组团,每个项目必须设置一处样板展示区。其他的应在工程上...

    4年前   
    788    0

    统编版2019-2020年二年级上册语文期中测试卷AD卷

    统编版2019-2020年二年级上册语文期中测试卷AD卷姓名:________ 班级:________ 成绩:________小朋友,带上你一段时间的学习成果,一起来做...

    3年前   
    653    0

    2021年二中实验室实验规则

    2021年二中实验室实验规则物理室实验规则一、实验室内必须保持整洁,安静。二、学生进入室按编组入座,要听从老师的指导,未经许可不准乱动仪器及其他设施。三、实验前应先检查仪器等是否齐全、完好,填...

    1年前   
    269    0

    实验八顺序表的排序实验报告

     计算机科学与技术系 实 验 报 告 专业名称 计算机科学与技术 ...

    2年前   
    770    0

    实验一线性表操作实验报告

    XX大学计算机学院实验报告课程名称   数据结构   实验名称__线性表操作   实验报告要求:1.实验目的  2.实验内容   3.实验步骤    4.运行结果   5.流程图  ...

    3年前   
    1702    0

    例谈科学探究实验与实验报告

    例谈科学探究实验与实验报告  例谈科学探究实验与实验报告     山东菏泽曹县第二中学 陈焘     摘要:科学探究实验是新课程着重介绍的知识点,同时又是当前基础教育课程改革的热点、亮点和难点...

    9年前   
    478    0

    大学物理实验课程设计实验报告

    大学物理实验课程设计实验报告  北方民族大学    大学物理实验(设计性实验)    实验报告   指导老师:王建明    姓    名:张国生    学    号:XX0233    学  ...

    9年前   
    723    0

    实验一开环直流调速系统的仿真实验

    熟悉并掌握利用MATLAB中Simulink建立直流调速系统的仿真模型和进行仿真实验的方法。

    4年前   
    1321    0

    实验六二叉树实验报告

    实验四 二叉树的操作 班级:计算机班 姓名: 学号: 完成日期:2010题目:对于给定的一二叉树,实现各种约定的遍历。一、实验目的: (1)掌握二叉树的定义和存储表示,学会建立一棵特定二...

    1年前   
    544    0

    实验报告-电力电子仿真实验

    掌握单相交-直-交变频电路仿真模型的建立及模块参数和仿真参数的设置。理解单相交-直-交变频电路的工作原理及仿真波形。

    4年前   
    1127    0

    C语言实验报告《综合实验》

    C语言实验报告《综合实验》  学号:__________    姓名:__________    班级:__________    日期:__________  指导教师:__________...

    10年前   
    866    0

    初中物理专题:实验专题5电学实验

    实验专题(五)电学实验★ 知识点:欧姆定律、伏安法测电阻、电功、伏安法测小灯泡的电功率、焦耳定律1.现有两节新的干电池、电压表、电流表、滑动变阻器、开关、导线若干。在利用“伏安法”测量定值电阻...

    3年前   
    633    0

    实验十三-SIMULINK的应用

    实验十三 SIMULINK的应用一、实验目的1、熟悉Simulink的操作环境并掌握绘制系统模型的方法2、掌握Simulink中子系统模块的建立与封装技术3、对简单系统所给出的数学模型能...

    1年前   
    415    0