ARM技术william hill官网
登录
直播中
仰望星空99
12年用户
260经验值
擅长:EDA/IC设计
私信
关注
[问答]
STM32 GPIO 开漏输出 数据读取
开启该帖子的消息推送
寄存器
大
神们好!
小弟新手一枚,关于
STM32
GPIO寄存器操作有些疑问,望大神们不吝赐教。
具体描述:1、我做DS1302实验,对端口分别设置为2个推免1个开漏输出,时钟芯片上加了4.7K上拉电阻,
现在的问题是我不知道该怎么来读取数据,因为我试了几种模式都无法得到正确数据。我现在对
寄存器的操作如下所示:我附图了,这里不能直接粘贴,我还上传了整个工程,希望有兴趣的大神帮我看看。
2、我在做74HC164和74HC165实验的时候,数据结果没不太对劲,望大神顺带帮我看看呗!
谢谢大家!
22、串行转并行实验.rar
(522.31 KB)
(下载次数: 83, 2014-3-17 12:04 上传)
35、数字时钟DS1302实验.rar
(683.23 KB)
(下载次数: 31, 2014-3-17 12:05 上传)
回帖
(6)
赵杰
2014-3-20 17:01:04
用上拉电阻的时候不要用推挽输出,推完输出时stm32的io端口会是3.3v的电压,而不是5v。
用上拉电阻的时候不要用推挽输出,推完输出时stm32的io端口会是3.3v的电压,而不是5v。
举报
sswenxh2006
2014-3-21 08:09:13
谢谢楼主分享!!!!
谢谢楼主分享!!!!
举报
z00
2014-3-21 08:47:53
读取DS1302时最好加延时
u8 read_ds1302_byte(u8 dat)
{
u8 i,temp;
GPIOA->ODR&=0xffdf;//GPIOA->ODR&=0<<5; //res=0;
delayms(1); //_nop_();
GPIOA->ODR&=0xfff7;//GPIOA->ODR&=0<<3;//sclk=0;
delayms(1); //_nop_();
GPIOA->ODR|=1<<5; //res=1;
delayms(1); //_nop_();
for(i=0;i<8;i++)
{
GPIOA->ODR&=0xffef;//GPIOA->ODR&=0;
GPIOA->ODR&=0xfff7;//GPIOA->ODR&=0<<3; //sclk=0;
if(dat&0x01)
GPIOA->ODR|=1<<4; //io=dat&0x01;
dat=dat>>1;
GPIOA->ODR|=1<<3; //sclk=1;
}
for(i=0;i<8;i++)
{
temp=temp>>1;
GPIOA->ODR&=0xfff7;//GPIOA->ODR&=0<<3; //sclk=0;
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4))
temp=temp|0x80;
GPIOA->ODR|=1<<3; //sclk=1;
}
GPIOA->ODR&=0xffdf;//GPIOA->ODR&=0<<5; //res=0;
delayms(1); //_nop_();
return temp;
}
读取DS1302时最好加延时
u8 read_ds1302_byte(u8 dat)
{
u8 i,temp;
GPIOA->ODR&=0xffdf;//GPIOA->ODR&=0<<5; //res=0;
delayms(1); //_nop_();
GPIOA->ODR&=0xfff7;//GPIOA->ODR&=0<<3;//sclk=0;
delayms(1); //_nop_();
GPIOA->ODR|=1<<5; //res=1;
delayms(1); //_nop_();
for(i=0;i<8;i++)
{
GPIOA->ODR&=0xffef;//GPIOA->ODR&=0;
GPIOA->ODR&=0xfff7;//GPIOA->ODR&=0<<3; //sclk=0;
if(dat&0x01)
GPIOA->ODR|=1<<4; //io=dat&0x01;
dat=dat>>1;
GPIOA->ODR|=1<<3; //sclk=1;
}
for(i=0;i<8;i++)
{
temp=temp>>1;
GPIOA->ODR&=0xfff7;//GPIOA->ODR&=0<<3; //sclk=0;
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4))
temp=temp|0x80;
GPIOA->ODR|=1<<3; //sclk=1;
}
GPIOA->ODR&=0xffdf;//GPIOA->ODR&=0<<5; //res=0;
delayms(1); //_nop_();
return temp;
}
举报
z00
2014-3-21 08:49:04
可以参考一下文章的代码
STM32 DS1302:http://bbs.ednchina.com/BLOG_ARTICLE_2137247.HTM
STM32与DS1302接口http://blog.chinaaet.com/detail/19046.html
可以参考一下文章的代码
STM32 DS1302:http://bbs.ednchina.com/BLOG_ARTICLE_2137247.HTM
STM32与DS1302接口http://blog.chinaaet.com/detail/19046.html
举报
胡伟涵
2014-3-22 11:33:26
读取数据的引脚设为悬空输入先试试。STM32DS1302可以参考下里面
http://www.eeworld.com.cn/mcu/2012/0913/article_10378.html
读取数据的引脚设为悬空输入先试试。STM32DS1302可以参考下里面
http://www.eeworld.com.cn/mcu/2012/0913/article_10378.html
举报
p1105583274
2014-4-3 08:15:40
你可以去群里看看 【电子产品研发交流】:(323764552) 欢迎来群里共同探讨!
你可以去群里看看 【电子产品研发交流】:(323764552) 欢迎来群里共同探讨!
举报
更多回帖
rotate(-90deg);
回复
相关问答
寄存器
推挽
输出
与
开
漏
输出
的区别是什么?
2021-12-10
2926
NV32F100X单片机
GPIO
只有
开
漏
输出
吗?
2018-10-23
1323
如何对
STM32
F429的
GPIO
进行配置
2021-10-25
985
IIC为什么用
开
漏
输出
和上拉电阻?
2021-02-26
1958
STM32
的
GPIO
输出
模式与输入模式详解
2021-12-07
1851
开
漏
形式的威廉希尔官方网站 有什么特点?
2021-03-17
1649
如何使用IO口的
开
漏
和推挽
输出
?
2019-09-08
2063
请问点灯时设置IO口是
开
漏
输出
不能成功点灯的原因吗?
2019-03-22
4088
在Cortex-M3中对
GPIO
的配置有哪几种?
2021-07-11
1579
如何对
STM32
芯片的时钟进行初始化呢
2021-11-26
1399
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分