资深版主
 
- 积分
- 10565
- 金钱
- 10565
- 注册时间
- 2017-2-18
- 在线时间
- 1913 小时
|
本帖最后由 peng1554 于 2018-9-26 22:02 编辑
近来遇到有客户不能使用USB-RS485模块与板子通信,发回返修有时又没有问题的情况,所以写了这个简单的测试程序,方便测试板子RS485接口 MINI 没有RS485接口,所以测试程序针对 战舰V3 ,探索者F407,阿波罗F429 , 阿波罗F767 , 阿波罗H743和号令者RT1052开发板
程序基于各开发板的RS485例程修改而来,其中修改了main函数,让板子RS485接口收到5字节的数据并发回给上位机
[mw_shl_code=c,true] int main(void)
{
u8 key=0;
u8 t=0;
u8 rs485buf[5];
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
LED_Init(); //初始化与LED连接的硬件接口
LCD_Init(); //初始化LCD
RS485_Init(9600); //初始化RS485
POINT_COLOR=RED; //设置字体为红色
LCD_ShowString(30,50,200,16,16,"WarShip & Elite STM32");
LCD_ShowString(30,70,200,16,16,"USB-RS485 TEST");
LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(30,110,200,16,16,"2018/09/11");
while(1)
{
RS485_Receive_Data(rs485buf,&key);
delay_ms(10);
if(key) //接收到有数据
{
RS485_Send_Data(rs485buf,5);//发送5个字节
}
t++;
delay_ms(40);
if(t==20)
{
LED0=!LED0; //提示系统正在运行
t=0;
}
}
}[/mw_shl_code]
值得注意的是串口助手XCOM这么设置
当串口助手向目标板发送16进制的“01 02 03 04 05”时候,串口助手也会收到开发板发来的16进制的“01 02 03 04 05”
需要注意的是:1.如果基于串口通信例程只是改串口和引脚是不能控制RS485收发的。需要基于RS485例程去修改才行
2.板子的PA2接485_RX引脚 PA3接485_TX引脚
|
|