ARM技术william hill官网
直播中

仰望星空99

12年用户 260经验值
擅长:EDA/IC设计
私信 关注
[问答]

STM32 GPIO 开漏输出 数据读取

神们好!
       小弟新手一枚,关于STM32GPIO寄存器操作有些疑问,望大神们不吝赐教。
       具体描述:1、我做DS1302实验,对端口分别设置为2个推免1个开漏输出,时钟芯片上加了4.7K上拉电阻,
       现在的问题是我不知道该怎么来读取数据,因为我试了几种模式都无法得到正确数据。我现在对
      寄存器的操作如下所示:我附图了,这里不能直接粘贴,我还上传了整个工程,希望有兴趣的大神帮我看看。
                2、我在做74HC164和74HC165实验的时候,数据结果没不太对劲,望大神顺带帮我看看呗!
   
QQ截图20140317105043.png QQ截图20140317105025.png
                                                                                                                                                                                     谢谢大家!
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。
举报

sswenxh2006

2014-3-21 08:09:13
谢谢楼主分享!!!!
举报

z00

2014-3-21 08:47:53
读取DS1302时最好加延时

  1. u8 read_ds1302_byte(u8 dat)
  2. {
  3. u8 i,temp;
  4. GPIOA->ODR&=0xffdf;//GPIOA->ODR&=0<<5; //res=0;
  5. delayms(1);  //_nop_();
  6. GPIOA->ODR&=0xfff7;//GPIOA->ODR&=0<<3;//sclk=0;
  7. delayms(1);  //_nop_();
  8. GPIOA->ODR|=1<<5;  //res=1;
  9. delayms(1);   //_nop_();
  10. for(i=0;i<8;i++)
  11. {

  12.      GPIOA->ODR&=0xffef;//GPIOA->ODR&=0;
  13.   GPIOA->ODR&=0xfff7;//GPIOA->ODR&=0<<3;  //sclk=0;
  14.   if(dat&0x01)
  15.    GPIOA->ODR|=1<<4; //io=dat&0x01;
  16.   dat=dat>>1;
  17.   GPIOA->ODR|=1<<3; //sclk=1;
  18. }
  19. for(i=0;i<8;i++)
  20. {
  21.   temp=temp>>1;
  22.   GPIOA->ODR&=0xfff7;//GPIOA->ODR&=0<<3;   //sclk=0;
  23.   if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4))
  24.   temp=temp|0x80;
  25.   GPIOA->ODR|=1<<3;   //sclk=1;
  26. }
  27. GPIOA->ODR&=0xffdf;//GPIOA->ODR&=0<<5;   //res=0;
  28. delayms(1);  //_nop_();
  29. return temp;
  30. }

举报

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
举报

胡伟涵

2014-3-22 11:33:26
读取数据的引脚设为悬空输入先试试。STM32DS1302可以参考下里面
http://www.eeworld.com.cn/mcu/2012/0913/article_10378.html
举报

p1105583274

2014-4-3 08:15:40
你可以去群里看看 【电子产品研发交流】:(323764552) 欢迎来群里共同探讨!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分