熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2018-3-31 09:34
正文摘要:本帖最后由 etxuxu 于 2018-3-31 09:52 編輯 這個(gè)是一個(gè)一線串口通信的芯片,在網(wǎng)上淘回來(lái)的?梢酝ㄟ^(guò)輸入指令控制TF卡內(nèi)的音頻播放。 我的基礎(chǔ)實(shí)在不好,想讓哪位大神幫我看看這個(gè)協(xié)議時(shí)序到底是什么意思應(yīng)該 ... |
可不可以把程序給我看看 |
zhangxiaozi 發(fā)表于 2018-3-31 10:54 謝謝回復(fù)! 那想請(qǐng)問(wèn)一下。data&0x80的意思是?且for(i=0; i<8; i++)是? 如果我希望用單片機(jī)播放曲目00001的話。應(yīng)該怎么去觸發(fā)? |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
類似串口,你首先了解串口 ,只不過(guò)串口的1和0是1位寬的高和低,而這個(gè)的1用一位寬的3/4高和1/4的低組成,0用一位寬的1/4高和3/4的低組成 程序類似這樣的 senddata(unsigned char dat) { for(i=0; i<8; i++) { if(data&0x80) {sendone();} else {sendzero();} dat<<=1; } } sendone() { tx=1; delay(3); tx=0;delay(1); } sendzero() { tx=1; delay(1); tx=0;delay(3); } tx是你的數(shù)據(jù)發(fā)送端,delay函數(shù)自己編寫,大體如此 |
參與人數(shù) 1 | 黑幣 +60 | 收起 理由 |
---|---|---|
![]() | + 60 | 回帖助人的獎(jiǎng)勵(lì)! |
那想請(qǐng)問(wèn)一下。data&0x80的意思是?且for(i=0; i<8; i++)是? data&0x080,其實(shí)就是判斷,data的最高為是1還0,是循環(huán)8次,把一個(gè)字節(jié)的8位發(fā)完 我是舉例從高位發(fā)起的, 如從低位發(fā)起 for(i=0; i<8; i++) { if(data&0x01) {sendone();} else {sendzero();} dat>>=1; } 注意 dat&0x80 dat<<=1 dat&0x01 dat>>=1 一個(gè)完整的單字節(jié)發(fā)送 就是在senddta()的開頭 再加上2ms的低電平 如果我希望用單片機(jī)播放曲目00001的話。應(yīng)該怎么去觸發(fā)? 一旦你掌握了一個(gè)完整的單字節(jié)發(fā)送,后邊無(wú)非就是一串有命令或者命令+數(shù)據(jù),一串無(wú)非就是單字節(jié)發(fā)送的多次調(diào)用而已 |
Powered by 單片機(jī)教程網(wǎng)