/****************************************************************/ //设备初始化时序产生函数DS18B20_reset(),无形参和返回值 /****************************************************************/ void DS18B20_reset(void) { u8 x;//变量x用于取回总线电平状态 DS18B20_DQ_DDR(1);//改变DQ引脚方向性为输出方式 DS18B20_DQ=1;//控制器首先应为高电平状态 delay_u(910);//延时大约800us DS18B20_DQ=0;//控制器拉低总线发送复位脉冲 delay_u(910);//拉低时间大约800us DS18B20_DQ=1;//控制器释放总线 delay_u(30);//DS18B20等待大约30us DS18B20_DQ_DDR(0);//改变DQ引脚方向性为输入方式 delay_u(30);//等待DS18B20应答脉冲大约30us x=PA_IDR_IDR3;//取回总线电平状态 <------ 這裡有問題! while(x);//等待应答脉冲出现低电平 <------ delay_u(900);//控制器等待至少480us } 應該改為 : do { x=PC_IDR_IDR3;//取回总线电平状态 } while(x);//等待应答脉冲出现低电平 |
带注释的寄存器操作易于初学者学习理解,值得初学者学习学习、 |
这个全带注释的不错,得下载一个学习学习 |
初学的好教材,谢谢分享!!! |
不错,感谢分享。本人虽然年纪大点,还是想学习一下STM8 |
THANKS |
本帖最后由 13931582522 于 2018-8-16 14:30 编辑 源码,行行都有注释,采用的寄存器编程 |