STM32 485 调试
来源:互联网 发布:2016qq悄悄话破解软件 编辑:程序博客网 时间:2024/06/08 07:40
1、最近由于项目的需要,搞了下485通信。首先是单片机如何控制485收发数据。发数据就是通过串口发送数据(说白了就是串口发送),但是要注意的是485的控制引脚要拉高设置为发送模式:
//通过485发送数据
void RS485_Send_Data(u8 *buf,u8 len)
{
u8 t;
RS485_TX_EN=1;//设置控制引脚,来设置成发送模式
for(t=0;t<len;t++)
{
while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);
USART_SendData(USART2,buf[t]);
}
while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);
RS485_TX_EN=0;//在不发送的时候一定要置为接受模式,否则对485硬件有损坏,也会导致数据有错误。
}
//通过串口接受中断来接受数据
void RS485_Receive_Data(u8 *buf,u8 *len)
{
u8 rxlen=RS485_RX_CNT;
u8 i=0;
*len=0;
delay_ms(10); //这个延时是比较重要的,否则会丢数据,由于485传输的速度是有限的,在接收的时候注意下延时。
if(rxlen==RS485_RX_CNT&&rxlen) //判断数据是否接收完毕
{
for(i=0;i<rxlen;i++)
{
buf[i]=RS485_RX_BUF[i];//RS485_RX_BUF[i]此数组为串口接收中断的缓存数组。
}
*len=RS485_RX_CNT;
RS485_RX_CNT=0;
}
}
2、在调试硬件的时候,485接收和发送的电路应该一样,否则会造成数据传输有问题:比如结尾多0x00,或者丢数据。
3、接收数据的时候要给足够的接收时间,以便数据全部接收完毕。
- STM32 485 调试
- stm32调试
- STM32调试485(sp3485)技术总结
- STM32 ADC调试
- stm32 usbHID调试小结
- STM32 调试错误信息
- STM32的SRAM调试
- stm32 usbHID调试小结
- 【stm32应用】SRAM调试
- STM32调试错误
- STM32调试问题
- STM32 IAP调试记录
- STM32调试记录
- STM32 SWD调试
- stm32+ucos,si4438调试
- STM32的SRAM调试
- STM32调试问题
- STM32 UART调试总结
- 2048-控制台版本
- sql group by,order by
- 只执行一次的装饰器
- javascript笔记(六)
- 尚学堂百战程序员1573题 答案 第三章
- STM32 485 调试
- 远场(far-field)语音识别的主流技术有哪些
- 【1】稀疏表示与匹配追踪
- Leveldb源码解析第七篇【log】
- 访问网站出现EOF
- find命令
- Check RedHat/HP-UX OS version
- pxe
- intellij IDE build出错,无法显示图片,找不到tomcat server,java编译版本过低,异常推出后无法启动项目等常见问题解决