我用的是msp430,與CH375采用三線串口連接方式:
430<---------->375 UTXD<---------->RXD URXD<---------->TXD
為了符合375的串行數(shù)據(jù)格式,我選用430異步模式中的地址位多機模 式:1位起始位、8位數(shù)據(jù)位、1位地址位(地址模式時)和1位停止位。
我定義命令、數(shù)據(jù)發(fā)送函數(shù)如下:
void xWriteCH375Cmd( UINT8 mCmd ) /*發(fā)送命令*/ { unsigned int command; command=mCmd; command |=0x300; /*置第九位為1,加停止位,發(fā)送命令;*/ command=command<<1; /*添加起始位*/ TXBUF0=command; Delay(5); /* 延時5uS*/ }
void xWriteCH375Data( UINT8 mData ) /*發(fā)送數(shù)據(jù)*/ { unsigned short int data; data=mData; data |=0x200; /*置第九位為0,加停止位,發(fā)送數(shù)據(jù);*/ data=data<<1; /*添加起始位*/ TXBUF0=data; Delay(5); /* 延時5uS*/ }
可是,430的發(fā)送數(shù)據(jù)緩存UTXBUF只是char型的, 上面的兩個賦值語句TXBUF0=command;和TXBUF0=data;會被截為低8位。
請問我該怎么辦啊? 怎樣才能從430把命令和數(shù)據(jù)正確的發(fā)送到375啊? 麻煩各位了,謝謝。