达好硬件可以直接使用,这里IC用的MSP430F149,这个可以改的,基本上430系列通用.
下面为部分代码:
//接收到一个字节以后,设置3.5byte定时中断,
//如果接收到下一个字节没有超时,则重新设置3.5byte定时中断,
//一旦中断产生,表示正常接收完毕,或者接收数据出错
#ifdef __IAR_SYSTEMS_ICC__
#if __VER__ >= 200
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A1 (void)
#else
interrupt[TIMERA1_VECTOR] void Timer_A1 (void)
#endif
#endif
{
UINT len;
if(TAIV==4)
{
CCTL2 &=~ CCIE; //Disable CCR1 timer interrupt
ME1 &=~ URXE0; //Disable USART0 RXD
if(CommBuf[1]==0x03)
{
if(CommBufPtr==8) //03命令必须是8字节数据
{
if(CrcCheck(6)) //03 命令的前6个字节要做校验,CRC ok
{
len = CommBuf[5]<<1; //*2
CommBuf[2] = (UCHAR)len;
//在这里修改需要发回的数据
memcpy(&CommBuf[3],Ram_Data,len);
CrcMake(len+3); //数据及其前面3个字节需要做CRC运算
// CommNeedToSend = len+5;
CommNeedToSend = len+6;
len = TAR+TIMER_CNT_35;
while(TAR
1