[技术问答] 请问,MINI51的modbus例程有吗?

[复制链接]
1583|13
 楼主| wangjiahao88 发表于 2016-2-25 14:35 | 显示全部楼层 |阅读模式
请问,MINI51的modbus例程有吗?
或者说,谁可以不可以提供一份!

谢谢了!
yiyigirl2014 发表于 2016-2-25 17:42 | 显示全部楼层
M451_freemodbus porting.zip (3.96 MB, 下载次数: 55)

这个是451的,因为都是新唐的,而mini51是arm-Cortex M0内核应该是差不多的。
yiyigirl2014 发表于 2016-2-25 17:45 | 显示全部楼层
贴出来主函数

  1. #include <stdio.h>
  2. #include <stdint.h>
  3. #include "M451Series.h"
  4. #include "user_mb_app.h"

  5. /* ----------------------- Modbus includes ----------------------------------*/
  6. #include "mb.h"
  7. #include "mbport.h"


  8. #define PLL_CLOCK  72000000

  9. void SYS_Init(void)
  10. {
  11.    /* Register write-protection disabled */
  12.     SYS_UnlockReg();

  13.     /*---------------------------------------------------------------------------------------------------------*/
  14.     /* Init System Clock                                                                                       */
  15.     /*---------------------------------------------------------------------------------------------------------*/

  16.     /* Enable HIRC clock (Internal RC 22.1184MHz) */
  17.     CLK_EnableXtalRC(CLK_PWRCTL_HIRCEN_Msk);

  18.     /* Wait for HIRC clock ready */
  19.     CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk);

  20.     /* Select HCLK clock source as HIRC and and HCLK clock divider as 1 */
  21.     CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_HIRC, CLK_CLKDIV0_HCLK(1));

  22.     /* Enable HXT clock (external XTAL 12MHz) */
  23.     CLK_EnableXtalRC(CLK_PWRCTL_HXTEN_Msk);

  24.     /* Wait for HXT clock ready */
  25.     CLK_WaitClockReady(CLK_STATUS_HXTSTB_Msk);

  26.     /* Set core clock as PLL_CLOCK from PLL */
  27.     CLK_SetCoreClock(PLL_CLOCK);
  28.                
  29.           SYS->GPD_MFPL &= ~(SYS_GPD_MFPL_PD0MFP_Msk | SYS_GPD_MFPL_PD1MFP_Msk);
  30.     SYS->GPD_MFPL |= (SYS_GPD_MFPL_PD0MFP_UART0_RXD | SYS_GPD_MFPL_PD1MFP_UART0_TXD);
  31.     CLK_EnableModuleClock(UART0_MODULE);
  32.     CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UARTSEL_HXT, CLK_CLKDIV0_UART(1));
  33.                
  34.     CLK_EnableModuleClock(TMR0_MODULE);
  35.     CLK_SetModuleClock(TMR0_MODULE, CLK_CLKSEL1_TMR0SEL_HXT, 0);
  36.                
  37.     /* Register write-protection enabled */
  38.     SYS_LockReg();
  39. }


  40. int32_t main()
  41. {
  42.            SYS_Init();

  43.      eMBInit( MB_RTU, 0x01, 0, 115200, MB_PAR_NONE );

  44.     /* Enable the Modbus Protocol Stack. */
  45.      eMBEnable(  );

  46.     for( ;; )
  47.     {
  48.         ( void )eMBPoll(  );
  49.                         CLK_SysTickDelay(500000);
  50.    }
  51. }       



E-Kaia 发表于 2016-2-25 18:17 | 显示全部楼层
这个modbus传输速度快不快啊
Jessicakjdsl 发表于 2016-2-25 22:19 | 显示全部楼层
在cortex M+内核上运行速度会更快
deviceplugs 发表于 2016-2-26 21:57 | 显示全部楼层
这个modbus是不是也是串行的啊
Harvard 发表于 2016-2-27 00:04 | 显示全部楼层
你没用看到代码中初始化了串口嘛 当然是串口的
rickin 发表于 2017-7-22 08:28 | 显示全部楼层
真的感谢。正好需要这块
 楼主| wangjiahao88 发表于 2017-7-22 15:52 | 显示全部楼层
eMBInit( MB_RTU, 0x01, 0, 115200, MB_PAR_NONE );

请问一下 参数里面的 0 是什么意思啊?
 楼主| wangjiahao88 发表于 2017-7-22 15:52 | 显示全部楼层
看样子是 第几个串口,请问如果换了串口号,还需要更改这里吗?
zhuomuniao110 发表于 2017-7-22 19:26 | 显示全部楼层
如果换串口了,肯定要改一些参数的。
zhuomuniao110 发表于 2017-7-22 19:26 | 显示全部楼层
这个估计就是重定向的内容。
643757107 发表于 2017-7-23 11:37 | 显示全部楼层
看看资料,非常感谢。
 楼主| wangjiahao88 发表于 2017-7-27 17:08 | 显示全部楼层
重定向的内容???

你的意思是 更换了串口号 这个参数也需要改变?

但是 我好像从来都是用的串口1 其他的没有用过 所以 写1 写0 都貌似没有问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

500

主题

7585

帖子

31

粉丝
快速回复 在线客服 返回列表 返回顶部