【前三名回答额外获得100IC币】
跟踪调试,单片机能收到串口助手发来的数据;485芯片的控制引脚信号也是对的,发送数据时,能进入发送函数
RS485的发送函数:
GPIO_SetBits( RS485_DIR_PORT[COMx] RS485_DIR_PIN[COMx]); DealyCnt = 50; while (DealyCnt--); while (len--) { USART_SendData(RS485_base[COMx] *str++); while (USART_GetFlagStatus(RS485_base[COMx] USART_FLAG_TC) == RESET); /@@* 等待发送结束 */ } DealyCnt = 50; while (DealyCnt--); GPIO_ResetBits( RS485_DIR_PORT[COMx] RS485_DIR_PIN[COMx]);
这个是我在STM32F103上跑得代码,一直用在项目上,没有任何问题。
如果上位机还是接收不到数据,你可以使用示波器看看A\B线上的波形。
串口助手上的设置的参数是不是对的呢。
一些硬件的流控是不是关了
接收方式选择16进制方式
再试试