资源简介

基于STM32F103单片机开发,采用RS485总线的MODBUSRTU通讯例程,接受和发送使能控制。带CRC校验计算函数。纯原创。

资源截图

代码片段和文件信息

/******************** (C) COPYRIGHT 2010 HY嵌入式开发工作室 ********************
* Description        : 演示 USART1 当接收缓冲器满时,将接收到的数据传送出去
                       V6-LED1闪烁表示正在收发数据。 
    
*********************************************************************/
/* Includes ------------------------------------------------------------------*/
#include “stm32f10x.h“
#include “stm32f10x_usart.h“
#include “misc.h“
#include “modbus.h“
#include “Device_Init.h“
 
typedef enum { FAILED = 0 PASSED = !FAILED} TestStatus;   
#define countof(a)   (sizeof(a) / sizeof(*(a)))    
vu32 TIM4_Period; //定时器周期  RTU模式3.5周期用
void Delay(__IO uint32_t nCount);
void delay_1ms(u16 num);  
TestStatus Buffercmp(uint8_t* pBuffer1 uint8_t* pBuffer2 uint16_t BufferLength);
int main(void)
{
delay_1ms(10);   
RCC_Configuration();         
  NVIC_Configuration();   
  GPIO_Configuration();         
   USART_Configuration(USART19600);   
  while (1)
   {       
        delay_1ms(500);  
Modbus_Function_3(10001);   
Com0_Communication();

   }
}


void Delay(__IO uint32_t nCount)
{
  for(; nCount != 0; nCount--);
}

void delay_1ms(u16 num)
{
for(;num>=1;num--)
Delay(7200);
}


/**
  * @brief  Compares two buffers.
  * @param pBuffer1 pBuffer2: buffers to be compared.
  * @param BufferLength   buffer的长度
  * @retval : PASSED: pBuffer1 identical to pBuffer2
  *   FAILED: pBuffer1 differs from pBuffer2
  */
TestStatus Buffercmp(uint8_t* pBuffer1 uint8_t* pBuffer2 uint16_t BufferLength)
{
  while(BufferLength--)
  {
    if(*pBuffer1 != *pBuffer2)
    {
      return FAILED;
    }

    pBuffer1++;
    pBuffer2++;
  }
  return PASSED;
}

#ifdef  USE_FULL_ASSERT

/**
  * @brief  Reports the name of the source file and the source line number
  *   where the assert_param error has occurred.
  * @param file: pointer to the source file name
  * @param line: assert_param error line source number
  * @retval : None
  */
void assert_failed(uint8_t* file uint32_t line)

  /* User can add his own implementation to report the file name and line number
     ex: printf(“Wrong parameters value: file %s on line %d\r\n“ file line) */

  /* Infinite loop */
  while (1)
  {
  }
}
#endif


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4951  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\misc.h

     文件      19585  2009-08-31 15:06  STM32_modbus_master_成功\FWlib\inc\stm32f10x_adc.h

     文件       7373  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_bkp.h

     文件      14289  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_can.h

     文件       3213  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_conf.h

     文件       1980  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_crc.h

     文件      10271  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_dac.h

     文件       2980  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_dbgmcu.h

     文件      18790  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_dma.h

     文件       5833  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_exti.h

     文件      14446  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_flash.h

     文件      17276  2009-09-01 10:57  STM32_modbus_master_成功\FWlib\inc\stm32f10x_fsmc.h

     文件      15221  2009-09-04 15:44  STM32_modbus_master_成功\FWlib\inc\stm32f10x_gpio.h

     文件      16923  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_i2c.h

     文件       3677  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_iwdg.h

     文件       4201  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_pwr.h

     文件      16258  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_rcc.h

     文件       3659  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_rtc.h

     文件      18598  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_sdio.h

     文件      14896  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_spi.h

     文件      48768  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_tim.h

     文件      14483  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_usart.h

     文件       2785  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\inc\stm32f10x_wwdg.h

     文件       6874  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\SRC\misc.c

     文件      46634  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\SRC\stm32f10x_adc.c

     文件       8248  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\SRC\stm32f10x_bkp.c

     文件      30960  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\SRC\stm32f10x_can.c

     文件       3340  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\SRC\stm32f10x_crc.c

     文件      13723  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\SRC\stm32f10x_dac.c

     文件       4310  2009-04-06 10:30  STM32_modbus_master_成功\FWlib\SRC\stm32f10x_dbgmcu.c

............此处省略109个文件信息

评论

共有 条评论