STM8S硬件IIC卡在判忙,注意事项

阅读: 评论:0

STM8S硬件IIC卡在判忙,注意事项

STM8S硬件IIC卡在判忙,注意事项

1.具体的代码我就不贴了,21IC有很多示例,放到自己的工程死都不通。后面放弃,改用模拟IIC。今天又尝试半天,居然通了,特意发文章纪念,且帮助有同样困惑的人。
2.下面是关键,下面这样设置IO可正常使用硬件IIC

GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_OUT_OD_HIZ_SLOW);	//IIC,OD outPut
GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_OD_HIZ_SLOW);	//IIC,OD outPut
//或者
GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_OUT_OD_HIZ_FAST);	//IIC,OD outPut
GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_OD_HIZ_FAST);	//IIC,OD outPut

下面这样设置IO不能正常使用硬件IIC

GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_OUT_OD_LOW_SLOW);	//IIC,OD outPut
GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_OD_LOW_SLOW);	//IIC,OD outPut
//或者
GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_OUT_OD_LOW_FAST);	//IIC,OD outPut
GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_OD_LOW_FAST);	//IIC,OD outPut

关键在于不能把IIC口设置成输出低电平,不然总是卡在判忙。这里不容易发现问题是因为,先初始化IO的时候是输出的低电平,然后初始化IIC的时候,这里就被IIC硬件使用了外部上拉变成了高电平,你以为IO口是正常了,其实在判忙这通不过。

本文发布于:2024-02-02 10:40:44,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170684164143259.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:卡在   注意事项   硬件   STM8S   IIC
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23