OpenEdv-开源电子网

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

端口初始化时千万别忘了给端口速度赋值

[复制链接]

4

主题

30

帖子

0

精华

高级会员

Rank: 4

积分
551
金钱
551
注册时间
2012-2-17
在线时间
123 小时
发表于 2013-8-17 22:17:40 | 显示全部楼层 |阅读模式
这几天在调I2C,碰到点问题查了好几天,这里给大家分享一下:
在端口初始化时,有这么几句:
GPIO_InitStructure_IIC.GPIO_Pin = SDA_PIN;
GPIO_InitStructure_IIC.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure_IIC.GPIO_Speed = GPIO_Speed_50MHz;   
GPIO_Init(GPIOB, &GPIO_InitStructure_IIC);
注意上面端口速度的赋值,有些程序里面前面赋值过了,后面就会省掉,但如果真的不赋值,结构体初始化是0的,而GPIO_Speed是个枚举变量,只能为1、2、3,所以就会出现一些莫名其妙的错误;
下图是对比(紫色为clk,绿色为dat信号),当未对dat端口速度赋值时波形:


这个怎么运行都不正常的,正常的应该是这样的,看到dat在8个时钟信号变化时可以变化了;




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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

4

主题

30

帖子

0

精华

高级会员

Rank: 4

积分
551
金钱
551
注册时间
2012-2-17
在线时间
123 小时
 楼主| 发表于 2013-8-18 20:07:46 | 显示全部楼层
软件模拟的
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-18 23:32:13 | 显示全部楼层
哦,模拟IIC,那应该不存在这个问题吧。
在IIC_Start里面,就会设置IO状态。
如下:
//产生IIC起始信号
void IIC_Start(void)
{
SDA_OUT();     //sda线输出
IIC_SDA=1;      
IIC_SCL=1;
delay_us(4);
  IIC_SDA=0;//START:when CLK is high,DATA change form high to low 
delay_us(4);
IIC_SCL=0;//钳住I2C总线,准备发送或接收数据 
}
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

30

帖子

0

精华

高级会员

Rank: 4

积分
551
金钱
551
注册时间
2012-2-17
在线时间
123 小时
 楼主| 发表于 2013-8-18 23:58:57 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
关键是我的SDA_OUT()函数里面没有配端口速度,是在SDA_IO( )这个函数里设置的,刚好我调用了部分代码测试,所以就没有初始化端口速度。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-14 22:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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