中级会员
- 积分
- 457
- 金钱
- 457
- 注册时间
- 2015-8-16
- 在线时间
- 116 小时
|
发表于 2016-3-9 22:39:55
|
显示全部楼层
问题有解决了,原因是我的DS1302的引脚没接上拉电阻,而我的端口初始化是这样的:
void DS1302_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//设置PA4、PA6为推挽输出
GPIO_InitStruct.GPIO_Pin = DS1302CLK|DS1302RST;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(DS1302_PORT, &GPIO_InitStruct);
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_OD;//设置PA5为开漏模式
GPIO_InitStruct.GPIO_Pin = DS1302DAT;
GPIO_Init(DS1302_PORT, &GPIO_InitStruct);
}
将PA5设置为开漏模式,而
开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).所以要接上上拉电阻 |
|