开发环境:野火的STM32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的资源包为0.2.2。工程使用上一篇 rt-thread studio新建stm32f407工程为基础。 硬件配置:查看野火资料确定rs485的引脚和控制脚分别是:485_R:USART2_RX PA3; 485_T:USART2_TX PA2;控制脚:PC0。野火板子需要使用跳线帽进行连接485_R<—>PA3、485_D<—>PA2、C/4-5V<—>5V。外部使用rs485转usb线进行连接,注意usb转RS485线的接头使用的是db9头,根据标准,db9的1脚接板子的rs485的B相(data-),2脚接板子rs485的A相(data+)。
rt-thread studio的配置,添加软件包RS485,添加完还需要修改board.h中的代码,代码修改如下:
、、、
#define BSP_USING_UART2
#define BSP_UART2_TX_PIN "PA2"
#define BSP_UART2_RX_PIN "PA3"
、、、
编译正常。
测试方法:使用软件包自带的示例进行测试,取消#define RS485_USING_TEST的注释,同时修改控制脚的宏定义,改为
、、、
#define RS485_TEST_PIN GET_PIN(C, 0) //default test ctrl pin
、、、
重新编译,下载。使用finsh输入指令,进行测试。测试步骤:
* create //create rs485 instance
* connect //open rs485 connect
* recv //receive from rs485
* send //send to rs485
使用这几个指令,可以看到能够正常的接收和发送数据。
原作者:YZRD