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