单片机中这种高低电平的收发码还是比较常见的,但是找起相关代码资料又不好找,算了还是自己写一个贡献出来吧。
#include <iostream>
#include <string>
using namespace std;
void SendHighData(void)
{
cout << "1 " ;
}
void SendLowData(void)
{
cout << "0 " ;
}
// 低位 -> 高位
void SendByteData(int data)
{
int i = 0, temp;;
for (i = 0; i < 8; i++)
{
temp = (data & 0x01);
if (temp)
{
SendHighData();
}
else
{
SendLowData();
}
data >>= 1;
}
}
// 高位 -> 低位
void SendByteData2(int data)
{
int i = 0, temp;;
for (i = 0; i < 8; i++)
{
temp = (data & 0x80);
if (temp)
{
SendHighData();
}
else
{
SendLowData();
}
data <<= 1;
}
}
int main() {
SendByteData(0x55);
cout << endl;
SendByteData2(0x55);
return 0;
}
结果如下图