找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 849|回复: 0
收起左侧

关于STM32F103C8T6单片机ADC测量数据问题

[复制链接]
ID:73992 发表于 2023-6-20 22:27 | 显示全部楼层 |阅读模式
芯片为stm32f103c8t6
程序用GPI0_B0作为ADC1输入口,用规则通道转换数据。通过设置ADON位触发ADC转换。 无标题.png 无标题2.png 无标题4.png 无标题1.png
问题1:PB0引脚固定接在通道8,ADC1,2可以经过通道8测量数据。这样理解对不对


问题2:上图寄存器中的SWSTART位 与 ADON位的功能有点分不清楚
问题3:程序联机调试的时候,PB0无论接0伏还是3.3伏。ADC1数据寄存器DR总是在0000到大概3FFF之间跑。以下是程
*************STM32F103C8T6*****************

GPIOC        EQU        0X40011000                  ;GPIO端口C基地址
RCC_CFGR        EQU                0X40021004        
RCC_APB2ENR        EQU        0X40021018
GPIOB        EQU        0X40010C00                  ;GPIO端口B 基地址
ADC_1        EQU        0X40012400                  ;ADC1 基地址
AFIO        EQU        0X40010000                        ;AFIO基地址
        AREA        ICODE,CODE
        ENTRY
        EXPORT        __main
__main                                             ;主程序
        BL        SET_BIOS
LOOP
        BL        DELAY

        LDR        R0,=ADC_1                                ;开始转换规则通道,S数据右对齐
        LDR        R1,=0X000E0801
        STR        R1,[R0,#8]
        
        BL        DELAY
        B        LOOP
        
SET_BIOS
        PUSH        {R0,R1,LR}
        LDR        R0,=RCC_APB2ENR                        ;使能ADC_1,GPIO_B,GPIO_C,AFIO
        LDR        R1,=0X0000021D
        STR        R1,[R0]
        
        LDR        R0,=RCC_CFGR                        ;ADC时钟分频
        LDR        R1,=0XC000
        STR        R1,[R0]
        
        LDR        R0,=GPIOB                                ;设置gpio b为模拟输入
        LDR        R1,=0X00
        STR        R1,[R0]                                
        
        LDR        R0,=GPIOC                                ;设置gpio c13为输出 (指示灯)
        LDR        R1,=0X00300000
        STR        R1,[R0,#0X4]
        LDR        R1,=0XFFFFFFFF                   ;打开 GPIO 13 LED      
        STR        R1,[R0,#0X0C]
        
        LDR        R0,=AFIO                                ;设ADC1外部触发规则转换与TIM8_TRGO相连
        LDR        R1,=0X70000
        STR        R1,[R0,#4]               
        
        LDR        R0,=ADC_1                                ;数据右对齐 并且校准
        LDR        R1,=0X000E0804
        STR        R1,[R0,#8]        
        
        LDR        R0,=ADC_1                ;通道8转换时间寄存器               
        LDR        R1,=0X07000000
        STR        R1,[R0,#10]
        
        LDR        R0,=ADC_1
        LDR        R1,=0X08                                ;规则通道 通道8第一个转换
        STR        R1,[R0,#34]
        
        LDR        R0,=ADC_1                                ;数据右对齐 并且校准
        LDR        R1,=0X000E0804
        LDR        R1,[R0,#8]
        
        POP        {R0,R1,LR}
        BX        LR
        
DELAY
        PUSH        {R5,LR}
        LDR        R5,=0X00005003
DELAY1
        SUB        R5,#0X00000001
        CMP        R5,#0X00000000
        BNE        DELAY1
        POP        {R5,LR}
        BX        LR

        ALIGN ;ALIGN四字节对齐
        
        
        END


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表