UART 算是個很古老的東西
目前的MCU也都包含了
其本上只要看看SPEC
設定一下MCU的REG
就沒什麼問題了
但這樣真的了解UART嗎?
如果有不夠用的時後怎麼半?
如果沒有ICE時如何debug?
如何用I/O模擬 UART
假設 baud rate = 9600
one bit time = 1/9600 = 104uS
8bit/none parity/one start/one stop
Time = 10us interrupt
void SUART(unsigned char UD)
{
unsigned char j;
j=0;
SU_Time=0;
while(j != 10)
{
while(SU_Time>=10) //15=7 10=10 12=9 13=8 8=13
{
switch(j)
{
case 0:
PB &= 0xE0;
j++;
break;
case 9:
PB |= 0x10;
j=10;
break;
default:
if(UD & 0x01)
PB |= 0x10;
else
PB &= 0xE0;
UD >>=1;
j++;
break;
}
SU_Time=0;
}
}
}
傳送端比較簡單
接收的話就必需考慮的比較多了
有些東西,看懂了不代長真正了解
還是自已做一次看看
才知道到底了解多少
沒有留言:
張貼留言