久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: STM32 MODBUS協(xié)議源程序 [打印本頁(yè)]

作者: nihaobu    時(shí)間: 2019-8-2 15:26
標(biāo)題: STM32 MODBUS協(xié)議源程序
STM32 MODBUS協(xié)議

單片機(jī)源程序如下:
  1. /**
  2.   ******************************************************************************
  3.   * @文件   
  4.   * @作者
  5.   * @版本
  6.   * @日期
  7.   * @概要
  8.   ******************************************************************************
  9.   * @注意事項(xiàng)
  10.   *
  11.   *
  12.   *
  13.   ******************************************************************************
  14.   */  

  15. /* 頭文件                --------------------------------------------------------------*/
  16. #include <stdio.h>
  17. #include "stm32f10x.h"
  18. #include "mb.h"

  19. /* 私有數(shù)據(jù)類型 --------------------------------------------------------------*/
  20. /* 私有定義         --------------------------------------------------------------*/
  21. /* 私有宏定義         --------------------------------------------------------------*/
  22. #ifdef __GNUC__
  23. /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
  24.    set to 'Yes') calls __io_putchar() */
  25. #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
  26. #else
  27. #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
  28. #endif /* __GNUC__ */
  29. /* 私有變量         --------------------------------------------------------------*/
  30. /* 私有函數(shù)聲明 --------------------------------------------------------------*/
  31. void LED_Config(void)
  32. {
  33.         GPIO_InitTypeDef GPIO_InitStructure;
  34.        
  35.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

  36.         GPIO_InitStructure.GPIO_Pin          = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;
  37.         GPIO_InitStructure.GPIO_Mode         = GPIO_Mode_Out_PP;
  38.         GPIO_InitStructure.GPIO_Speed         = GPIO_Speed_50MHz;

  39.         GPIO_Init(GPIOC,&GPIO_InitStructure);
  40. }


  41. /**
  42.   * @brief  Configure the nested vectored interrupt controller.
  43.   * @param  None
  44.   * @retval : None
  45.   */
  46. void NVIC_Configuration(void)
  47. {
  48.   NVIC_InitTypeDef NVIC_InitStructure;

  49.   /* Enable the TIM2 gloabal Interrupt */
  50.   NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
  51.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  52.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  53.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

  54.   NVIC_Init(&NVIC_InitStructure);

  55.   /* Enable the TIM2 gloabal Interrupt */
  56.   NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
  57.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  58.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
  59.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

  60.   NVIC_Init(&NVIC_InitStructure);
  61. }

  62. /**
  63.   * @功能
  64.   * @參數(shù)
  65.   * @返回值
  66.   */
  67. int main(void)
  68. {
  69.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  70.         NVIC_Configuration();
  71.         LED_Config();
  72.        
  73.         /*模式         從機(jī)地址 端口 波特率 校驗(yàn)位*/
  74.         eMBInit( MB_RTU, 0x01, 0, 9600, MB_PAR_NONE );
  75.        
  76.         /* Enable the Modbus Protocol Stack. */
  77.         eMBEnable(  );
  78.        
  79.         for( ;; )
  80.         {
  81.          ( void )eMBPoll(  );
  82.          /* Here we simply count the number of poll cycles. */
  83.          //usRegInputBuf[0]++;
  84.         }
  85. }

  86. /**
  87.   * @brief  Retargets the C library printf function to the USART.
  88.   * @param  None
  89.   * @retval None
  90.   */
  91. PUTCHAR_PROTOTYPE
  92. {
  93.   /* Place your implementation of fputc here */

  94.   /* Loop until the end of transmission */
  95.   while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
  96.   {}
  97.   /* e.g. write a character to the USART */
  98.   USART_SendData(USART1, (uint8_t) ch);       

  99.   return ch;
  100. }

  101. #ifdef  USE_FULL_ASSERT

  102. /**
  103.   * @brief  Reports the name of the source file and the source line number
  104.   *         where the assert_param error has occurred.
  105.   * @param  file: pointer to the source file name
  106.   * @param  line: assert_param error line source number
  107.   * @retval None
  108.   */
  109. void assert_failed(uint8_t* file, uint32_t line)
  110. {
  111.   /* User can add his own implementation to report the file name and line number,
  112.      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  113.   /* Infinite loop */
  114.   while (1)
  115.   {
  116.   }
  117. }
  118. #endif
  119. /**
  120.   * @}
  121.   */


  122. /*******************************文件結(jié)尾**************************************/
復(fù)制代碼

所有資料51hei提供下載:
STM32_MODBUS.7z (196.05 KB, 下載次數(shù): 129)







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩久久成人 | 免费天天干 | 最近免费日本视频在线 | 日韩久久久久 | 亚洲精品在线视频 | 激情 一区 | 久久精品99 | 国产精品久久久久久婷婷天堂 | 中文二区 | 欧美一级欧美一级在线播放 | av官网在线| 欧洲精品在线观看 | 久久在线看 | 久艹av| 久久专区| 亚洲精品一区二区三区蜜桃久 | 国产精品久久久久久久久免费高清 | 美国黄色毛片 | 一级黄色片网址 | 美女黄频 | 日本精品一区二区 | 免费av观看 | 一区二区三区欧美大片 | 欧美成人在线免费 | 中文字幕日韩欧美一区二区三区 | 免费一级欧美在线观看视频 | 国产精品免费在线 | 欧美视频免费在线观看 | 国产精品久久久一区二区三区 | 6080亚洲精品一区二区 | 久久爱黑人激情av摘花 | 国产美女久久久 | wwwxx在线观看 | 亚洲精品久久视频 | 亚洲综合中文字幕在线观看 | 国产成人精品久久 | 亚洲欧美综合 | 精品99在线 | 一区二区日韩 | 视频一二区| 中文字幕在线一区 |