查看: 81|回复: 13
收起左侧

Labview与STM32、新唐通讯系列之MODBUS<5> --STM32实现的freemodbus

[复制链接]

79

主题

549

帖子

1677

积分

助理工程师

 楼主| 发表于 2017-6-27 21:39 | 显示全部楼层 |返回版面|阅读模式
我下载的是freemodbus-v1.5.0,解压后如图所示:

在demo文件夹中有很多移植好的例子,但是没有STM32的,不要紧,我们参考已有的例子来操作就可以了。在demo文件夹下新建一个文件夹,命名为STM32,将BARE文件夹里的文件全部复制过来。
    然后,我们建立一个STM32的工程,我用的是mdk4.72,关于怎么建立工程我就不啰嗦了,在工程里添加modbus 和 port两个文件夹,并在文件夹里添加需要的文件,这些modbus的是在modbus文件夹下面,port的是在刚才新建的那个stm32文件夹下,port.c是我从别的地方弄过来的,里面就是一个开中断和一个关中断的函数,可以不要,我的工程如图:


21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

79

主题

549

帖子

1677

积分

助理工程师

 楼主| 发表于 2017-6-27 21:40 | 显示全部楼层 |返回版面
关键的地方如下:

voidUSART1_IRQHandler(void)

{

    if(USART_GetITStatus(USART1,
USART_IT_RXNE) == SET)

    {      

        prvvUARTRxISR();

        USART_ClearITPendingBit(USART1,
USART_IT_RXNE);

    }



    if(USART_GetITStatus(USART1,
USART_IT_TXE) == SET)

    {

        prvvUARTTxReadyISR();

//     
USART_ClearITPendingBit(USART1, USART_IT_TXE);

    }

}
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

79

主题

549

帖子

1677

积分

助理工程师

 楼主| 发表于 2017-6-27 21:41 | 显示全部楼层 |返回版面
也就是说 无论你使用的是 F103 105 407 429 等等

这个都是通用的!
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

79

主题

549

帖子

1677

积分

助理工程师

 楼主| 发表于 2017-6-27 21:42 | 显示全部楼层 |返回版面
其实 这个用起来还是非常方便的!

配合组态软件 做图形化的界面 或者 MODBUSPOLL 都可以!

希望大家能够用到工程上面!
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

79

主题

549

帖子

1677

积分

助理工程师

 楼主| 发表于 2017-6-27 21:43 | 显示全部楼层 |返回版面
大家注意一下,尤其是 UART0 或者TIM 的时钟、中断的匹配!

配合起来就行了!

很简单的!
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

79

主题

549

帖子

1677

积分

助理工程师

 楼主| 发表于 2017-6-27 21:44 | 显示全部楼层 |返回版面
USART_ClearITPendingBit(USART1, USART_IT_TXE);

注意一下 这个上面:
USART_IT_TXE

这里是 TXE,而不是 TC。。。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

14

主题

82

帖子

246

积分

中级技术员

发表于 2017-6-29 18:06 | 显示全部楼层 |返回版面
赞一个,一直没用过OS,搞这个比较费脑细胞
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

7

主题

122

帖子

366

积分

资深技术员

发表于 2017-6-29 18:11 | 显示全部楼层 |返回版面
楼主可以上传源码看看嘛?正用到这方面的知识
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

11

主题

116

帖子

348

积分

资深技术员

发表于 2017-6-29 19:24 | 显示全部楼层 |返回版面
直接用HAL库的配置软件,直接就配置好rtos,不用进行这些配置和操作。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

7

主题

88

帖子

264

积分

中级技术员

发表于 2017-6-29 19:37 | 显示全部楼层 |返回版面
单片机菜菜 发表于 2017-6-29 19:24
直接用HAL库的配置软件,直接就配置好rtos,不用进行这些配置和操作。

是freeRtos吗?还是其他RTOS呢?
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

79

主题

549

帖子

1677

积分

助理工程师

 楼主| 发表于 2017-7-1 10:27 | 显示全部楼层 |返回版面
不用rots 就是一个 freemodbus 与裸机的例程
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

131

主题

752

帖子

2276

积分

初级工程师

发表于 2017-7-4 13:50 | 显示全部楼层 |返回版面
有主站的吗?
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

79

主题

549

帖子

1677

积分

助理工程师

 楼主| 发表于 2017-7-13 14:08 | 显示全部楼层 |返回版面
主站的 我也找不到……
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

79

主题

549

帖子

1677

积分

助理工程师

 楼主| 发表于 2017-7-13 14:09 | 显示全部楼层 |返回版面
不过 主站的 正在研究之中!

测试好了之后 我们一起探讨!

安富莱好像有发布的主站的!
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

分享 快速回复 返回顶部 返回列表