打印
[技术问答]

请问,MINI51的modbus例程有吗?

[复制链接]
1284|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangjiahao88|  楼主 | 2016-2-25 14:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问,MINI51的modbus例程有吗?
或者说,谁可以不可以提供一份!

谢谢了!
沙发
yiyigirl2014| | 2016-2-25 17:42 | 只看该作者
M451_freemodbus porting.zip (3.96 MB)

这个是451的,因为都是新唐的,而mini51是arm-Cortex M0内核应该是差不多的。

使用特权

评论回复
板凳
yiyigirl2014| | 2016-2-25 17:45 | 只看该作者
贴出来主函数

#include <stdio.h>
#include <stdint.h>
#include "M451Series.h"
#include "user_mb_app.h"

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


#define PLL_CLOCK  72000000

void SYS_Init(void)
{
   /* Register write-protection disabled */
    SYS_UnlockReg();

    /*---------------------------------------------------------------------------------------------------------*/
    /* Init System Clock                                                                                       */
    /*---------------------------------------------------------------------------------------------------------*/

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

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

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

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

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

    /* Set core clock as PLL_CLOCK from PLL */
    CLK_SetCoreClock(PLL_CLOCK);
               
          SYS->GPD_MFPL &= ~(SYS_GPD_MFPL_PD0MFP_Msk | SYS_GPD_MFPL_PD1MFP_Msk);
    SYS->GPD_MFPL |= (SYS_GPD_MFPL_PD0MFP_UART0_RXD | SYS_GPD_MFPL_PD1MFP_UART0_TXD);
    CLK_EnableModuleClock(UART0_MODULE);
    CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UARTSEL_HXT, CLK_CLKDIV0_UART(1));
               
    CLK_EnableModuleClock(TMR0_MODULE);
    CLK_SetModuleClock(TMR0_MODULE, CLK_CLKSEL1_TMR0SEL_HXT, 0);
               
    /* Register write-protection enabled */
    SYS_LockReg();
}


int32_t main()
{
           SYS_Init();

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

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

    for( ;; )
    {
        ( void )eMBPoll(  );
                        CLK_SysTickDelay(500000);
   }
}       



使用特权

评论回复
地板
E-Kaia| | 2016-2-25 18:17 | 只看该作者
这个modbus传输速度快不快啊

使用特权

评论回复
5
Jessicakjdsl| | 2016-2-25 22:19 | 只看该作者
在cortex M+内核上运行速度会更快

使用特权

评论回复
6
deviceplugs| | 2016-2-26 21:57 | 只看该作者
这个modbus是不是也是串行的啊

使用特权

评论回复
7
Harvard| | 2016-2-27 00:04 | 只看该作者
你没用看到代码中初始化了串口嘛 当然是串口的

使用特权

评论回复
8
rickin| | 2017-7-22 08:28 | 只看该作者
真的感谢。正好需要这块

使用特权

评论回复
9
wangjiahao88|  楼主 | 2017-7-22 15:52 | 只看该作者
eMBInit( MB_RTU, 0x01, 0, 115200, MB_PAR_NONE );

请问一下 参数里面的 0 是什么意思啊?

使用特权

评论回复
10
wangjiahao88|  楼主 | 2017-7-22 15:52 | 只看该作者
看样子是 第几个串口,请问如果换了串口号,还需要更改这里吗?

使用特权

评论回复
11
zhuomuniao110| | 2017-7-22 19:26 | 只看该作者
如果换串口了,肯定要改一些参数的。

使用特权

评论回复
12
zhuomuniao110| | 2017-7-22 19:26 | 只看该作者
这个估计就是重定向的内容。

使用特权

评论回复
13
643757107| | 2017-7-23 11:37 | 只看该作者
看看资料,非常感谢。

使用特权

评论回复
14
wangjiahao88|  楼主 | 2017-7-27 17:08 | 只看该作者
重定向的内容???

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

但是 我好像从来都是用的串口1 其他的没有用过 所以 写1 写0 都貌似没有问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

474

主题

7520

帖子

30

粉丝