STM32移植FreeModbus串口合适但是485不合适的解决方法
【STM32移植FreeModbus串口合适但是485不合适的解决方法】一原因:
原因是因为485相比串口多了一个发送接收控制。
二解决方法:
将发送/接收控制放到freeModbus中让FreeModbus自己控制发送接收,主要在vMBPortSerialEnable
这个函数中修改,具体如下:
void
vMBPortSerialEnable( BOOL xRxEnable, BOOL xTxEnable )
{
/* If xRXEnable enable serial receive interrupts. If xTxENable enable
* transmitter empty interrupts.
*/
if(xRxEnable == TRUE)
{
modbus_receive_en();
//开接收中断的时候接收使能
USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
}
else
{
USART_ITConfig(USART2, USART_IT_RXNE, DISABLE);
}
if(xTxEnable == TRUE)
{
modbus_send_en();
//开发送中断的时候发送使能
USART_ITConfig(USART2, USART_IT_TC, ENABLE);
}
else
{
USART_ITConfig(USART2, USART_IT_TC, DISABLE);
}
}
推荐阅读
- 基于stm32智能风扇|基于stm32智能风扇_一款基于STM32的智能灭火机器人设计
- stm32|基于STM32和freeRTOS智能门锁设计方案
- STM32F4|STM32F4 TIM6 TIM7 基本定时器
- 三宝成功抢救大宝中国干细胞组,另一例脐血造血干细胞移植
- LUA|单片机脚本语言移植lua到stm32MDK
- STM32 CUbeIDE 定时器中断使用
- STM32F1系列ADC电压采集
- linux移植过程出现“can't open /dev/tq2440_serial0: No such file or directory”
- PC/SC在android上的移植
- system_stm32f0xx.h(基于v1.2.1)