基于FreeRTOS实现 Modbus ASCII (附工程)
freertos吧
全部回复
仅看楼主
level 11
huarkkk 楼主
开发环境:
1.STM32CubeMX: v4.14.0
2. STM32CubeF4: v1.11.0
3. KeilARM MDK: v5.20.0.0
4.Keil::STM32F4xx_DFP: v2.8.0
硬件:
1. ALIENTEK EXPLORER v2.2
2. JLINK v9.20
试验目的:
1. 实现Modbus ASCII 堆栈
------------------------------------------------------------------------------------------------------------
1. 任务
1.1 数据接收任务Task_MB_Rx
这个任务主要用于处理通过USART1接收到的字符,中断接收到字符后,通过信号量BinarySem_MBRx通知任务处理数据。
如果接收到完整的数据帧,通过同步信号量BinarySem_MBProcess通知任务Task_MB_Process,完整的数据帧已经收到了,可以处理数据。
1.2 数据处理任务 Task_MB_Process
处理接收到的完整数据帧,处理完后,通过同步信号量BinarySem_MBTx通知任务Task_MB_Tx,数据处理完毕,可以通过USARTDMA发送数据了。
1.3 数据发送任务 Task_MB_Tx
通过DMA发送数据,发送完毕后,DMA发送中断通过同步信号量BinarySem_DMATx通知任务,数据发送完毕,可以发送新的响应数据帧。
2. 同步信号量
2.1BinarySem_MBRx
2.2BinarySem_MBProcess
2.3BinarySem_MBTx
2.4BinarySem_DMATx
3. 互斥信号量
3.1mutex_usart_rx
3.2mutex_usart_tx
2016年05月19日 08点05分 1
level 1
楼主,你的工程在哪下载?
2016年05月21日 17点05分 2
1