OpenEdv-开源电子网

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

分享学习STM32过程中遇到的问题

[复制链接]

6

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2016-4-12
在线时间
97 小时
发表于 2016-6-18 18:21:36 | 显示全部楼层 |阅读模式
    今天学习模拟IIC读取AT24C02,调试了一天终于调试成功,用的是原子的历程,但是用的开发板不是,所以遇到了很多困难,但我绝对问题越多,收货也就越多。接下来给大家分享下调试过程中遇到的问题。
1.GPIO口方向配置问题,由于我的板子上SCL和SDA分别接的是PB6,PB7, 所以GPIO口需要重新配置,刚开始不会配置方向  因为一开始学的就是库函数,寄存器一窍不通,后来看数据手册,终于配置成功。
2.关于AT24C02地址的选择,我开发板上A0接高A1,A2接低 ,所以原子历程中读写的地址都需要更改,写从0XA0改为0XA2,读从0XA1改为0XA3;之前用的默认都接地,所以刚开始也没发现,也不会配置,看不懂数据手册,最后才弄懂,我的A2A1A0 是001 写RW是0,读RW是1,再加上1010,就是0XA2,0XA3的由来。
3.刚开始没找到问题,我看STM32手册上面说IIC的GPIO应该配置为开漏复用输出,我就把原子的推挽输出给改了,后来发现推挽输出才能用  也不知道为什么,希望大神可以指导下

GPIO方向配置

GPIO方向配置
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2016-4-12
在线时间
97 小时
 楼主| 发表于 2016-6-20 08:49:21 | 显示全部楼层
回复 支持 反对

使用道具 举报

6

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2016-4-12
在线时间
97 小时
 楼主| 发表于 2016-6-20 10:20:31 | 显示全部楼层
今天又调试成功外部中断,遇到的问题:
每个GPIO都有对应的中断线,更改GPIO需要更改中断线配置;
不是每个中断线都有对应的中断函数。
回复 支持 反对

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2016-6-20 15:16:50 | 显示全部楼层
楼主用的是硬件的I2C吗?硬件的I2C我没有使用过,不是很清楚。

如果是用程序模拟的I2C的话,记得如果配置为通用开漏输出是无需不断改变IO的输入输出状态的,看楼主说是配置成了开漏复用输出,不知道是不是配置不对,否则的话只能在主到从的时候配置为推挽输出,从到主的时候配置为输入。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复 支持 反对

使用道具 举报

6

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2016-4-12
在线时间
97 小时
 楼主| 发表于 2016-6-22 09:28:10 | 显示全部楼层
东北小辉辉 发表于 2016-6-20 15:16
楼主用的是硬件的I2C吗?硬件的I2C我没有使用过,不是很清楚。

如果是用程序模拟的I2C的话,记得如果配 ...

不是 软件模拟IIC  
回复 支持 反对

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-6-22 09:32:50 | 显示全部楼层

手册上说的开漏复用输出指的是硬件IIC的吧,模拟IIC肯定要推挽啊,不然就要外接上拉电阻了
回复 支持 反对

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-6-22 09:34:19 | 显示全部楼层
过眼烟云 发表于 2016-6-20 10:20
今天又调试成功外部中断,遇到的问题:
每个GPIO都有对应的中断线,更改GPIO需要更改中断线配置;
不是每 ...

外部中断,有好多是共用中断线,需要在他们的中断里面判断是哪一个外部中断发生了
回复 支持 反对

使用道具 举报

6

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2016-4-12
在线时间
97 小时
 楼主| 发表于 2016-6-22 09:38:07 | 显示全部楼层
憨厚诚实大叔 发表于 2016-6-22 09:32
手册上说的开漏复用输出指的是硬件IIC的吧,模拟IIC肯定要推挽啊,不然就要外接上拉电阻了

哦  知道了 原来如此
回复 支持 反对

使用道具 举报

6

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2016-4-12
在线时间
97 小时
 楼主| 发表于 2016-6-22 09:39:01 | 显示全部楼层
憨厚诚实大叔 发表于 2016-6-22 09:32
手册上说的开漏复用输出指的是硬件IIC的吧,模拟IIC肯定要推挽啊,不然就要外接上拉电阻了

哦   原来如此  多谢
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 10:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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