1771|3

37

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

请问大神这个标红的地址对不对?麻烦详解一下 [复制链接]

        ADC2->CR2 = 0x08;//数据右对
        ADC2->TDRH=0x20;//AIN13 禁止施密特触发       
        ADC2->CR1 |= 0X01;

此帖出自stm32/stm8论坛

最新回复

兄弟,你这个没头没尾的就发出来,有点难啊!建议你看一下你开发板的芯片手册里面对应寄存器的详解,里面应该有对应情况的解释,你就知道对不对了  详情 回复 发表于 2017-8-25 11:10
点赞 关注
 

回复
举报

37

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
有没有大神给解答一下啊
此帖出自stm32/stm8论坛
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
兄弟,你这个没头没尾的就发出来,有点难啊!建议你看一下你开发板的芯片手册里面对应寄存器的详解,里面应该有对应情况的解释,你就知道对不对了
此帖出自stm32/stm8论坛
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

4
 
谭谭() 发表于 2017-8-25 11:10
兄弟,你这个没头没尾的就发出来,有点难啊!建议你看一下你开发板的芯片手册里面对应寄存器的详解,里面应 ...

这是全部程序

#include "stm8s.h"   
#include "OLED12864.h"

void GPIO_int(void)//初始化按键,指示灯
{
        GPIOG->DDR=GPIOG->DDR&0x3f;//PG6,PG7按键配置为输入模式
        GPIOG->CR1=GPIOG->CR1|0xC0;//PG6,PG7按键配置为上拉输入
        GPIOA->DDR=GPIOA->DDR|0x30;//PA4,PA5指示灯配置为输出模式
        GPIOA->CR1=GPIOA->CR1|0x30;//PA4,PA5指示灯d配置为推挽模式
        GPIOA->ODR=0x00;//点亮指示灯
}

void Clock_init(void)//时钟配置 内部16M
{
        CLK->CKDIVR=0;
}

void AD_int(void)//电位器 PF5 初始化 AIN13
{
        u8 value;
        u16 ADC_TDR_tmp;
       
        ADC2->CSR = 13; //AIN13通道选择       
        //select 4MHz clock based on 16MHz fMaster (div4), single mode
        ADC2->CR1 = 0x20;

        ADC2->CR2 = 0x08;//数据右对
        ADC2->TDRH=0x20;//AIN13 禁止施密特触发       
        ADC2->CR1 |= 0X01;//使能ADC,,CR1=0000 0001
       
        value=30;
        while(value--); //等待ADC稳定.

        ADC2->CSR &= 0x7f;//清EOC标志
        ADC2->CR1 |= 0x01;//启动AD
}

main()
{
        unsigned int tem_c=0;
        unsigned char B_k1=0,B_k2=0;
        unsigned int ADConverValue=0;
       
        for(tem_c=0;tem_c<50000;tem_c++);
        Clock_init();
        GPIO_int();
        LCD_Init();
        LCD_Fill(0);
  LCD_P8x16Str(12,0,"U-EASYTECH");  
  LCD_P8x16Str(30,3,"AD test:");      
        AD_int();
       
        while (1)
        {
          if((GPIOG->IDR&0x80)==0x80)B_k1=0; //PG7为高电平,未有按键
                else if(B_k1==0)//PG6按下时,指示灯亮
                {
                        for(tem_c=0;tem_c<500;tem_c++);
                        if((GPIOG->IDR&0x80)==0x00)
                        {
                                B_k1=1;
                                GPIOA->ODR=0x30;
                        }
                }
               
                if((GPIOG->IDR&0x40)==0x40)B_k2=0; //PG6为高电平,未有按键
                else if(B_k2==0)//PG7按下时,指示灯灭
                {
                        for(tem_c=0;tem_c<500;tem_c++);
                        if((GPIOG->IDR&0x40)==0x00)
                        {
                                B_k2=1;
                                GPIOA->ODR=0x0;
                        }
                }
               
                if(ADC2->CSR&0x80)
                {
                        ADC2->CSR &= (u8)(~0x80);//清除EOC标志
                     ADConverValue=ADC2->DRH*256+ADC2->DRL;
                        ADC2->CR1 |= 0x01;//启动AD
                        Display_data(12,6,ADConverValue,0);//将采集到的值显示
                }
        }
}
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表