- 博客(3)
- 收藏
- 关注
原创 I2C start信号到SCL第一个上升沿时间太长
日常工作中,遇到过如题的问题,当时不知道原因,今天在代码仿真的时候,无意中发现了如题的不良现象,如下是keil 仿真的GPIO模拟I2C的结果因为问题是在I2C起始条件之后,程序代码定位应该在start()和wrByte()函数之间,void CH450_Write(unsigned short cmd) //I2C写CH450 两个字节命令{ CH450_I2c_Start(); /*I2C start函数调用*/ CH450_I2c_WrByte((unsig
2020-08-03 01:35:03
1384
原创 I2C_SCL 时钟抖动问题之“if条件判断分支” 软件优化
I2C_SCL 时钟抖动问题之“if条件判断分支” 软件优化一开始,我先给出一个比较常见的GPIO模拟的I2C的I2C_writeByte的代码,代码是从南京沁恒CH450的网站上download下来的推荐代码。void CH450_I2c_WrByte(unsigned char dat) //写一个字节数据{ unsigned char i; CH450_SDA_D_OUT; /* 设置SDA为输出方向 */ for(i=0;i!=8;i++) // 输出8位数据 { if(da
2020-08-03 00:57:25
679
原创 C51 跑马灯和流水灯的区别
这里很巧妙的用了 KeilC51 自带的函数库_crol_(),该函数包含在“intrins.h”头文件中,所以需要增加一句#include <intrins.h>包含该头文件。 crol()函数的功能是循环左移,如图 3-36 所示。循环左移LED灯(跑马灯)代码如下:(P2 = crol(P2,1) ;)#include "stc15.h"#include "intrins.h"sbit LED9 = P5^4;sbit LED10 = P5^5;sbit LED11 = P3.
2020-07-28 17:27:07
10724
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人