做了一个项目,单片机控制700个步进电机,每个步进电机有3bit数据,每次需要连续发送2100bit数据。
步进电机离单片机有十几米远,需要抗干扰能力强的通讯方式,所以选择485通讯。
但是标准串口都是8bit的,可发送两个3bit,有2bit空闲,有点可惜。
看了CW32的SPI,位数可变,最大16位,并且可以单工只发,用来做一个非标串口非常不错,一帧数据可以发送4个步进电机数据12bit。
实际又加了一个控制位,最高位为0表示数据,为1表示命令,共13位,再加上起始位0和停止位1,共15位。
没用晶振,用HSI振荡器即可满足波特率精度要求,3M波特率啊,CW32F003主频24M。 |