本人使用STM32F10X的串口几年了,以前用来作2片STM32的片间通信,3M波特率收发DMA,效率极高。
最近用来与PC通信,参数设置为9600,N,8,1,STM32依旧同时收发DMA,通过PC串口助手环回调试发现问题,一串连续发送的字符串只有第1个完全正确,第2个约30%的概率是错误的,再后面的就基本是错误的。如果把PC端的停止位设改为2,通信完全正确。
初步判断是STM32发送的造成错误的(这个结论有待进一步证实)。如此似乎STM32的停止位设置和PC的设置定义不同,暂不确定是否与DMA方式有关,但DMA方式下字符间的过渡时间肯定是最少的,使得问题容易暴露。以上问题不知道是否有其他朋友遇到?如有可能也请ST的工程师证实。 |