OpenEdv-开源电子网

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

我受不鸟了!!!

[复制链接]

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
发表于 2016-8-18 11:58:24 | 显示全部楼层 |阅读模式
这个问题是我很早就发现了,是关于ADC_Init,与LCD_Init

在之间参考ADC_Init的例程时,我发现手册上有

然后,我就在选择在复位校准成功之后,再去开启AD转换,
于是就就出现了。LCD初始化的失败,跟踪代码发现是读取LCD ID时读取不到
我想问,为什么?

这上面说了,开始AD转换之后,再去复位校准,会等待几个周期

这上面说了,开始AD转换之后,再去复位校准,会等待几个周期
与其感慨路难行,不如马上出发
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
 楼主| 发表于 2016-8-18 12:00:30 | 显示全部楼层
   ADC1->CR2|=1<<0;//开启ADC并自动转换
   ADC1->CR2|=1<<3;//使能复位校准,该位由软件设置,并且由硬件清除,在校准寄存器初始化完成之后清除
   while(ADC1->CR2&1<<3);//等待校准寄存器初始化完成
   
   ADC1->CR2|=1<<2;//开启AD校准,软件设置开始校准,校准结束后,由硬件清除该位
   while(ADC1->CR2&1<<2);//等待校准结束



我本来是把红色标注的这行,放在最后,但是,会一直出现LCD初始化失败
与其感慨路难行,不如马上出发
回复 支持 反对

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
 楼主| 发表于 2016-8-18 12:06:54 | 显示全部楼层
然后,我在提一点我的意见,关于代码方面的

DAC->CR|=0<<2;   //不使用触发功能 TEN1=0
DAC->CR|=0<<3;   //DAC TIM6 TRGO,不过要TEN1=1才行
DAC->CR|=0<<6;   //不使用波形发生
DAC->CR|=0<<8;   //屏蔽、幅值设置


上面这几行代码,是战舰V3 DAC寄存器版里面的,
但是,这几行分别是对TEN1 , TSEL1,WAVE1,MAMP1这几位写0
但是这么做存在隐患啊,万一DAC->CR不是复位状态,这样用或操作写0真的会有问题的


与其感慨路难行,不如马上出发
回复 支持 反对

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
 楼主| 发表于 2016-8-18 19:25:39 | 显示全部楼层
看来我这个标题有问题,大家可以试试,最后启动AD转换,LCD绝对会初始化失败
与其感慨路难行,不如马上出发
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-8-18 22:04:08 | 显示全部楼层
提问发悬赏贴。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
 楼主| 发表于 2016-8-18 22:40:01 | 显示全部楼层

原子哥,我在3楼说的,写0的方式问题,我觉得,有必要给大家一个更加科学的方法,
比如改成 DAC->CR&=!(1<<2);
与其感慨路难行,不如马上出发
回复 支持 反对

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
 楼主| 发表于 2016-8-18 22:40:52 | 显示全部楼层
xueshawu 发表于 2016-8-18 22:40
原子哥,我在3楼说的,写0的方式问题,我觉得,有必要给大家一个更加科学的方法,
比如改成 DAC->CR&=!( ...

我感觉 我有点杞人忧天,自己注意就行了
与其感慨路难行,不如马上出发
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-8-18 22:41:04 | 显示全部楼层
xueshawu 发表于 2016-8-18 22:40
原子哥,我在3楼说的,写0的方式问题,我觉得,有必要给大家一个更加科学的方法,
比如改成 DAC->CR&=!( ...

你这个方式应该不行
应该是:
DAC->CR&=~(1<<2);
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
 楼主| 发表于 2016-8-19 20:31:43 | 显示全部楼层
正点原子 发表于 2016-8-18 22:41
你这个方式应该不行
应该是:
DAC->CR&=~(1

这个方式,会对其他位造成改变的,
与其感慨路难行,不如马上出发
回复 支持 反对

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
 楼主| 发表于 2016-8-19 20:42:23 | 显示全部楼层
正点原子 发表于 2016-8-18 22:41
你这个方式应该不行
应该是:
DAC->CR&=~(1

对!!,我理解错了!
与其感慨路难行,不如马上出发
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-7 18:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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