看看是不是把SCIA的开了,而没有开SCIC的
再就是SCICTL寄存器的配置
把这些控制寄存器的配置都弄好了就OK了
再就是别忘了打开SCIC的时钟
慢慢调下就能通讯了
TX_ENScibRegs.SCITXBUF = Scib_VarRx[i]
RX_EN
RX_EN;前加延时试试,往寄存器ScibRegs.SCITXBUF写数据,数据不会立刻完成发送的。
浮点数float由4个字节组成,你通过sci将这4个字节传送,接收方再恢复成浮点来用即可,比如:发送方:
float a=3.14unsigned char *p p=(unsigned char *)&a
SCITX(p[0])SCITX(p[1])SCITX(p[2])SCITX(p[3])//假设SCITX函数实现将参数通过sci发送
接收方:
float bunsigned char *qq=(unsigned char *)&b
q[0]=SCIRX()q[1]=SCIRX()q[2]=SCIRX()q[3]=SCIRX()
printf("%f\n",b)
当然还有可以用联合的方法实现,不过用上面的方法就挺好。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)