我是初学PIC。 要做一个采集卡。 其中有串口,USB。
现在的问题是串口的设置问题。(由于手上没有ICD2) 暂时只有软件仿真。
请大家帮我看一下,这个程序有没有错。
******************************************************** * 功能描述:系统初始化 * * * * 输入参数: * * 返回参数:无 * *********************************************************/ void system_init(void) { INTCONbits.GIE = False; //关中断 //特殊功能寄存器设置 //TRISC = 0b00000000; //设端口RC7,RC6为输出 TRISCbits.TRISC6 = 1; //RX TRISCbits.TRISC7 = 0; //TX ///////////////////////////////////////////////////// //串口设定 SPBRG = 0x81; //晶振20M时波特率:9600 //接收数据寄存器器设置 RCSTA = 0x00; RCSTAbits.CREN = True; //打开连续接收 PIE1bits.RCIE = True; //中断方式接收 PIR1bits.RCIF = False; //中断位清0 //发送接收数据寄存器器设置 TXSTA = 0x00; TXSTA = 0x20;//SYNC=0;BRGH=0;位必须设为0及异步波特率为低速模式 //使能串口 RCSTAbits.SPEN = True; //打开串口 INTCONbits.PEIE = True; //允许所有关未屏蔽的外围中断 INTCONbits.GIE = True; //开中断 ///////////////////////////////////////////////////////// }
/******************************************************** * 功能描述:从串行口发送n个字符 * * * * 输入参数:要发送字符的首地址和字符个数 * * 返回参数:无 * *********************************************************/ void SendNumChar(unsigned char *SendAddr, unsigned char Num) { for(; Num > 0; Num--) { TXREG = *SendAddr; SendAddr++; while(!PIR1bits.TXIF); PIR1bits.TXIF = 0; //未发送完毕,等待 } }
|