OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2922|回复: 2

关于精英版的网盘下载A盘RCC程序问题

[复制链接]

1

主题

40

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3557
金钱
3557
注册时间
2017-5-23
在线时间
257 小时
发表于 2017-6-15 21:37:56 | 显示全部楼层 |阅读模式
u8 RTC_Init(void)
{
        //检查是不是第一次配置时钟
        u8 temp=0;
        if(BKP->DR1!=0X5050)//第一次配置
        {         
                  RCC->APB1ENR|=1<<28;     //使能电源时钟            
                RCC->APB1ENR|=1<<27;     //使能备份时钟            
                PWR->CR|=1<<8;           //取消备份区写保护
                RCC->BDCR|=1<<16;        //备份区域软复位          
                RCC->BDCR&=~(1<<16);     //备份区域软复位结束                   
            RCC->BDCR|=1<<0;         //开启外部低速振荡器
            while((!(RCC->BDCR&0X02))&&temp<250)//等待外部时钟就绪         
                {
                        temp++;
                        delay_ms(10);
                };
                if(temp>=250)return 1;//初始化时钟失败,晶振有问题          
                RCC->BDCR|=1<<8; //LSI作为RTC时钟             
       
最后这句,应该是选LSE作为RTC时钟才对啊,怎么说是LSI,谁能解答一下。


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

40

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3557
金钱
3557
注册时间
2017-5-23
在线时间
257 小时
 楼主| 发表于 2017-6-15 21:38:43 | 显示全部楼层
不好意思,是RTC的程序,打错了。
回复 支持 反对

使用道具 举报

1

主题

40

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3557
金钱
3557
注册时间
2017-5-23
在线时间
257 小时
 楼主| 发表于 2017-6-16 19:40:53 | 显示全部楼层
void Adc3_Init(void)
{
        RCC->APB2ENR|=1<<15;                //ADC3 时钟使能
        RCC->APB2RSTR|=1<<15;                //ADC 复位
        RCC->APB2RSTR&=~(1<<15);        //复位结束
        RCC->CFGR&=~(3<<14);                //分频因子清零
        //SYSCLK/DIV2=12M ADC 时钟设置为 12M,ADC 最大时钟不能超过 14M
        //否则将导致 ADC 准确度下降
        RCC->CFGR|=2<<14;
        ADC3->CR1&=0XF0FFFF;                //工作模式清零
        ADC3->CR1|=0<<16;                        //独立工作模式
        ADC3->CR1&=~(1<<8);                        //非扫描模式
        ADC3->CR2&=~(1<<1);                        //单次转换模式
        ADC3->CR2&=~(7<<17);
        ADC3->CR2|=7<<17;                        //软件控制转换
        ADC3->CR2|=1<<20;                        //使用外部触发(SWSTART)!必须使用一个事件触发
        ADC3->CR2&=~(1<<11);                //右对齐
        ADC3->SQR1&=~(0XF<<20);
        ADC3->SQR1|=0<<20;                        //1 个转换在规则序列中 也就是只转换规则序列 1
        //设置通道 1 的采样时间
        ADC3->SMPR2&=~(7<<3*6);                //通道 6 采样时间清空
        ADC3->SMPR2|=7<<3*6;                //通道 6,239.5 个周期,提高采样时间可以提高精度
        ADC3->CR2|=1<<0;                        //开启 AD 转换器
        ADC3->CR2|=1<<3;                        //使能复位校准
        while(ADC1->CR2&1<<3);                //等待校准结束
这也是精英的程序,LSENS程序里面的,最后两句:使能了ADC3复位,等待的是ADC1校准结束,难道这两是同一个寄存器?
有知道的网友,请指教一下。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-18 04:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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