spiwrite相关问题
想问下这段代码怎么理解?spiwrite(uint8_t c) {
int8_t i;
digitalWrite(_clk, HIGH);
for (i=0; i<8; i++) {
digitalWrite(_clk, LOW);
if (c & _BV(i)) {
digitalWrite(_mosi, HIGH);
} else {
digitalWrite(_mosi, LOW);
}
digitalWrite(_clk, HIGH);
}
} 麻烦帮帮忙啊 嘗試一下:
spiwrite(uint8_t c) { //函數帶著值"c"進入
int8_t i; //本地 變數i
digitalWrite(_clk, HIGH); //輸出腳 "_clk" 輸出高電平
for (i=0; i<8; i++) { // 8次循環
digitalWrite(_clk, LOW); //輸出腳 "_clk" 輸出低電平
if (c & _BV(i)) { //以循環次數作"c"的位元位置,並檢查其元值,
digitalWrite(_mosi, HIGH); // 若是"1",輸出腳 "_mosi" 輸出高電平
} else { //若是"0"
digitalWrite(_mosi, LOW); //輸出腳 "_mosi" 輸出低電平
}
digitalWrite(_clk, HIGH); //輸出腳 "_clk" 輸出高電平
}
}
全個函數的功能,就是以帶入的值,把它的位元值逐一在"_mosi" 輸出腳輸出,而在每位元輸出前前"_clk" 會先變低電平,在"_mosi"腳輸出值後,以"_clk" 腳輸出高電平作確認。
spi的函数。{:soso_e100:} eddiewwm 发表于 2014-5-9 22:57 static/image/common/back.gif
嘗試一下:
spiwrite(uint8_t c) { //函數帶著值"c"進入
如果C = 0x02,那么输出的值是多少呢?谢谢了 这是IO模拟SPI,C = 0x02的话,那输出就是0x02 pathletboy 发表于 2014-5-10 10:50 static/image/common/back.gif
这是IO模拟SPI,C = 0x02的话,那输出就是0x02
嗯嗯,谢谢啦 dandelion 发表于 2014-5-10 10:57 static/image/common/back.gif
嗯嗯,谢谢啦
你好,我还想问下,如果用LPC2103 + PN532实现读写卡功能,我怎么判断主机成功给丛机发送命令了? dandelion 发表于 2014-5-10 10:59 static/image/common/back.gif
你好,我还想问下,如果用LPC2103 + PN532实现读写卡功能,我怎么判断主机成功给丛机发送命令了?
应答属于软件协议上的事情,你看软件协议上有没有应答。
页:
[1]