你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 3833|回复: 2

【STM32F429心得\疑问】利用STM32F429实现抄表功能

[复制链接]

9

主题

34

回帖

0

蝴蝶豆

新手上路

最后登录
2020-4-30
发表于 2014-4-9 10:29:03 | 显示全部楼层 |阅读模式
目前水表、电表、热表、气表还有采用人工抄表的,技术太落后了。也有采用集中抄表的,但需要架设抄表系统,有用485总线的,有用红外线的,还有用MBUS。先集抄再上传。STM32F429有显示器可以显示抄表结果,有串口转网络接口可以远传,有串口可以与表计通信,再外扩些接口电路,实现一个远程抄表应用不错。
了解一下STM32F429 DISCOVERY
器原始资源在http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259090?s_searchtype=partnumber
 
   LQFP144STM32F429ZIT6180 MHzCortex-M4FPU,有2 MB Flash256 KB RAM并有一片64MSDRAM。在线ST-LINK/V2仿真编程器。L3GD20为三轴陀螺仪。ILI9341 控制的2.4吋的262K颜色240 x 320点阵的QVGATFT显示屏,使用STemWin GUI,初始代码有时钟日历、视频及图片播放、CPU性能检测等。推荐的开发环境有IAR、MDK及TrueSTUDIO.。就用MDK4.70A吧。目前升级到ARM5.10,尝尝鲜。
            STSW-STM32138
            
            STM32F429 discovery firmware package   (UM1662)是固件应用程序
            
这个文件为固件文件,与以前的类似,就是开发环境下的应用程序,包括板子原始程序工程。
 
            STSW-STM32141
            
            STM32F429 discovery .Net Micro   Framework package (UM1676)是上位机的应用程序
            
这个文件是配合固件的上位机应用程序,NET环境的C#源文件。
 
            STM32CubeF4
            
            STM32Cube firmware for STM32 F4 series   (HAL drivers, USB, Ethernet, File System, ...) (UM1730)是图示化开发工具
            

这个文件是图示化开发工具,以前没有用过的。估计是硬件资源越发丰富,软件开发越发复杂,就配了些工具吧。
 采用免费的FreeRTOS来提供任务管理、时间管理、信号量、消息队列、内存管理等功能。任务管理上可为抢占内核也可为不可抢占内核,同时支持轮换调度和优先级调度算法。整个系统只有3个文件,外加上port的和处理器相关的两个文件。
就绪任务表是pxReadyTasksLists,延时任务链表是xDelayedTaskList,事件等待链表、任务删除链表。任务控制块tskTaskControlBlock中没有任务状态是因为不同状态的任务直接接入对应的链表。常用的函数主要有
创建任务的函数xTaskCreate(任务函数名称,任务名字可选,任务堆栈大小,任务参数,任务优先级,可选参数)
启动操作系统的函数vTaskStartScheduler()
创建定时器任务的函数xTimerCreateTimerTask()
启动定时器函数xTimerStart
回复

使用道具 举报

9

主题

34

回帖

0

蝴蝶豆

新手上路

最后登录
2020-4-30
 楼主| 发表于 2014-4-21 08:25:28 | 显示全部楼层

RE:【STM32F429心得\疑问】利用STM32F429实现抄表功能

设计的抄表功能需要的资源包括:
1、需要串口1收发上位机命令和数据,中断接收,查询发送。
2、需要串口2接红外收发模块与表计通信
3、需要显示器进行抄表操作显示
4、需要外部中断进行表计中断操作
回复 支持 反对

使用道具 举报

9

主题

34

回帖

0

蝴蝶豆

新手上路

最后登录
2020-4-30
 楼主| 发表于 2014-4-21 08:27:43 | 显示全部楼层

RE:【STM32F429心得\疑问】利用STM32F429实现抄表功能

1、利用串口中断接收645-2007标准的抄表命令
{
        static bit flag682,flag681,flaglen,flagdata,flagchk,flagover;
        static unsigned char a,control,len,flagstatus,ptrint;
        unsigned char tempint,i,sum;
          frame=0;
        tempint=SBUF;
       
        if(tempint==0x68)    //判断是否接收到帧头
        {
                if(!flag681)    //是
                {
                 buf[ptrint]=tempint;
                 flagstatus=1;      //特征位
                 ptrint++;
                 }
        }
        if(flag681 && (!flag682)  )//不是,判断是否接收到第2个68
        {
        buf[ptrint]=tempint;
        if((ptrint==7) && (tempint==0x68)){flagstatus=2;a=0;}
        ptrint++;       
        }
        if(flag681 && flag682 && !flaglen )  //接收第2个68后的两个字符即控制码和长度
        {
                buf[ptrint]=tempint;
                ptrint++;
                if(ptrint==10){flagstatus=3;control=buf[ptrint-2];len=buf[ptrint-1];a=0;}
        }
        if(flag681 && flag682 && flaglen && !flagdata)//接收数据区
        {
                buf[ptrint]=tempint-0x33;
                ptrint++;
                a++;
                if(a==len){flagstatus=4;a=0;}
        }
  
        if(flag681 && flag682 && flaglen && flagdata && !flagchk)//接收检验
        {
                buf[ptrint]=tempint;
                if(ptrint==len+10)
                {
                sum=0;
                for(i=0;i
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版