從GIS軟件工程轉到嵌入式開發有一年了,總結嵌入式開發的一些小技巧。
本例模擬發送8位數據,其它位數視情況調整,本程序在VS2008下調試通過。
#include <stdio.h>
#include <stdlib.h>
typedef unsigned char byte;
int i = 0; // 傳入的位數
byte value = 0; // 接收uart數據
/*
*@brief 模擬bit型數據,
*/
typedef struct BIT_st
{
byte data:1;
}bit;
/*
*@brief
*
*移植入單片機時可將參數改爲串口數據寄存器變量
*@param bit bit_data -- 按位發送的數據
*@retval byte -- 返回接受的數據
*/
byte receive_bit(bit bit_data)
{
/* 接受8位數據 */
if (i==8)
{
i=0;
return value;
}
/* 按位接收數據主代碼 */
if (bit_data.data)
{
value |= (1<<i);
}
else
{
value &= ~(1<<i);
}
i++;
return value;
}
int main()
{
int j = 0;
bit uart_data[8] = {1,0,1,0,1,0,1,0}; // uart_data = 85;
byte ret = 0;
for (j=0; j<8; j++)
{
ret = receive_bit(uart_data[j]);
}
printf("%d\n", ret);
return 0;
}
搞了幾年的技術,剛有寫博客的覺悟,不足之處還請指教。