找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7066|回复: 26
打印 上一主题 下一主题
收起左侧

无功补偿控制器STM32程序 智能电容控制器

  [复制链接]
跳转到指定楼层
楼主
无功补偿控制器程序:

源码预览:
  1. /***********************************************************************
  2. * 文 件 名 :main.c
  3. * 描    述 :智能电容控制器
  4. *
  5. * 程序版本: V1.0
  6. * 日    期: 2016-11-18   
  7. *
  8. * IAR开发环境  版本 V2.20.1
  9. * ST库函数     版本 V2.2.0
  10. ***********************************************************************/

  11. #include "pbdata.h"//引入自定义公共头文件

  12. void BSP_Configuration(void);//硬件初始化函数声明

  13. /***********************************************************************
  14. *   函 数 名: main
  15. *   功能说明: c程序入口
  16. *   形    参:无
  17. *   返 回 值: 错误代码(无需处理)   
  18. ***********************************************************************/
  19. int main(void)
  20. {
  21.   BSP_Configuration();  // 硬件驱动初始化函数
  22.   W25QXX_Demo();
  23.   RN7302_Init();
  24.   while(1)              // 主程序循环,反复执行循环体里的语句
  25.   {
  26.     KeyDispose();
  27.     PCF8563_Demo();
  28.     TempSamplingDemo3();
  29.     UART3_Send_Str();
  30.     RN7302RD(bank0,RN7302_UA,4);
  31.   //  delay_ms(500);
  32.   }
  33. }
  34. /***********************************************************************
  35. *   函 数 名: BSP_Configuration
  36. *   功能说明: 初始化硬件设备。只需要调用一次。该函数配置CPU寄存器和外设的
  37.               寄存器并初始化一些全局变量。
  38. *   形    参:无
  39. *   返 回 值: 无
  40. ***********************************************************************/
  41. void BSP_Configuration(void)
  42. {  
  43.   CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//时钟速度为内部16M,1分频,
  44.   
  45.   I2C_Configuration();
  46.   TempSamplingConfiguration();
  47.   lcd_config();
  48.   FLASH_Write();
  49.   Tim3_Init();          // 调用TIM3初始化程序  
  50.   Tim4_Init();
  51.   Tim3_Lcd();
  52.   clear_screen();
  53.   display_zhiming();
  54.   delay_ms(1000);
  55.   clear_screen();
  56.   W25QXX_GPIO();
  57.   RN7302_GPIO();
  58.   UART3_Congfiguration();
  59.   rim();                // 打开总中断
  60. }

  61. /*断言函数:它的作用是在编程的过程中为程序提供参数检查*/
  62. #ifdef USE_FULL_ASSERT
  63. void assert_failed(u8* file,u32 line)
  64. {
  65.   while(1)
  66.   {

  67.   }
  68. }
  69. #endif


复制代码
  1. #include "pbdata.h"   //引入自定义公共头文件

  2. /*********************************************************************************
  3. *   函 数 名: delay_us
  4. *   功能说明: 微秒延时程序,注意此函数的运行环境为(16M时钟速度)
  5. *   形    参:nCount要延时的微秒数,输入nCount=1微妙
  6. *   返 回 值: 无
  7. *********************************************************************************/
  8. void delay_us(u16 nCount)   //16M 晶振时  延时 1个微妙
  9. {
  10.     nCount*=3;//等同于 nCount=nCount*3  相当于把nCount变量扩大3倍
  11.     while(--nCount);//nCount变量数值先减一,再判断nCount的数值是否大于0,大于0循环减一,等于0退出循环。
  12. }

  13. /*********************************************************************************
  14. *   函 数 名: delay_ms
  15. *   功能说明: 毫秒延时程序,注意此函数的运行环境为(16M时钟速度)
  16. *   形    参:nCount要延时的毫秒数,输入nCount=1毫秒
  17. *   返 回 值: 无
  18. *********************************************************************************/
  19. void delay_ms(u16 nCount)  //16M 晶振时  延时 1个毫秒
  20. {
  21.     while(nCount--)//先判断while()循环体里的nCount数值是否大于0,大于0循环,减一执行循环体,等于0退出循环。
  22.     {
  23.         delay_us(1000);//调用微妙延时函数,输入1000等译演示1毫秒。
  24.     }
  25. }

  26. /************************************************************************************************
  27. *   函 数 名: Get_decimal
  28. *   功能说明: 获得数值小数部分
  29. *   形    参:dt输入数据 deci小数位数,最多保留4位小数
  30. *   返 回 值: 放大后的小数部分
  31. *************************************************************************************************/
  32. u16 Get_decimal(double dt,u8 deci)   //获得数值小数部分double
  33. {
  34.     long x1=0;
  35.     u16 x2=0,x3=0;
  36.    
  37.     if(deci>4) deci=4;
  38.     if(deci<1) deci=1;
  39.     x3=(u16)pow(10, deci);
  40.     x1=(long)(dt*x3);
  41.     x2=(u16)(x1%x3);
  42.     return x2;
  43. }

  44. /************************************************************************************************
  45. *   函 数 名: FLASH_Write
  46. *   功能说明: 内部EEPROM的读写
  47. *   形    参:dt输入数据 deci小数位数,最多保留4位小数
  48. *   返 回 值: 放大后的小数部分
  49. *************************************************************************************************/
  50. void FLASH_Write(void)
  51. {
  52.   u16 val=0;
  53.   FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);
  54.   FLASH_Unlock(FLASH_MEMTYPE_DATA);
  55.   FLASH_ProgramByte(CTL,0);
  56.   FLASH_ProgramByte(CTH,0);
  57.   val=((FLASH_ReadByte(CTH))<<8)|(FLASH_ReadByte(CTL));
  58.   if(!val)
  59.   {
  60.     FLASH_ProgramByte(ZERO,0);
  61.     FLASH_ProgramByte(CTL,100);
  62.     FLASH_ProgramByte(GYH,0);
  63.     FLASH_ProgramByte(GYL,250);
  64.     FLASH_ProgramByte(QYH,0);
  65.     FLASH_ProgramByte(QYL,175);
  66.     FLASH_ProgramByte(GWZ,75);
  67.     FLASH_ProgramByte(TMX,99);
  68.     FLASH_ProgramByte(QMX,93);
  69.     FLASH_ProgramByte(TTS,15);
  70.     FLASH_ProgramByte(QTS,15);
  71.     FLASH_ProgramByte(VHR,1);
  72.     FLASH_ProgramByte(IHR,3);
  73.     FLASH_ProgramByte(SL,0);
  74.     FLASH_ProgramByte(SL+1,0);
  75.     FLASH_ProgramByte(SL+2,0);
  76.     FLASH_ProgramByte(SK,62);
  77.     FLASH_ProgramByte(SK+1,86);
  78.     FLASH_ProgramByte(SK+2,01);
  79.   }
  80.   FLASH_Lock(FLASH_MEMTYPE_PROG);
  81. //  val=FLASH_ReadByte(add_byte);
  82. //  return
  83. }

  84. //===============================================================================================//
复制代码



iar源码下载(注意这个不是Keil工程,这个是iar写的,如果没有安装iar的就不要下载了):
硬件电路资料:无(未完成)
iar工程源码: iar工程 无功补偿控制器源程序.7z (1.08 MB, 下载次数: 169)

评分

参与人数 1黑币 +5 收起 理由
3068785090 + 5

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:247597 发表于 2017-11-9 11:05 | 只看该作者
正需要,谢谢!
回复

使用道具 举报

板凳
ID:260931 发表于 2017-12-13 09:26 | 只看该作者
正需要,好东东,谢谢!
回复

使用道具 举报

地板
ID:124005 发表于 2018-1-22 01:50 | 只看该作者
啥用也没有
回复

使用道具 举报

5#
ID:364137 发表于 2018-8-4 08:59 | 只看该作者
看看什么情况?
回复

使用道具 举报

6#
ID:141133 发表于 2018-8-4 19:57 | 只看该作者
看看,学习学习!!!!!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

7#
ID:384647 发表于 2018-8-9 15:55 | 只看该作者
不知道有没有对大型电机机组瞬时启动或停止相对应动态补偿功能
回复

使用道具 举报

8#
ID:91359 发表于 2018-10-27 22:38 | 只看该作者
开源了,学习一下
回复

使用道具 举报

9#
ID:91359 发表于 2018-10-27 22:39 | 只看该作者
不知道有没有对大型电机机组瞬时启动或停止相对应动态补偿功能,动态补偿有的,设计要求高
回复

使用道具 举报

10#
ID:72395 发表于 2018-11-14 15:22 | 只看该作者
不是我想要的
回复

使用道具 举报

11#
ID:91359 发表于 2018-12-24 23:49 | 只看该作者
ACS712
回复

使用道具 举报

12#
ID:513849 发表于 2019-4-19 20:31 | 只看该作者
怎么用
回复

使用道具 举报

13#
ID:590113 发表于 2019-7-25 10:47 | 只看该作者
学习学习
回复

使用道具 举报

14#
ID:235062 发表于 2019-8-17 16:43 | 只看该作者
有原理图吗
回复

使用道具 举报

15#
ID:166646 发表于 2019-8-19 10:28 | 只看该作者
谢谢,这个对于产品很有用
回复

使用道具 举报

16#
ID:289399 发表于 2019-8-22 17:04 | 只看该作者
学习啦
回复

使用道具 举报

17#
ID:128321 发表于 2019-12-24 12:57 | 只看该作者
谢谢,这个对于产品很有用
回复

使用道具 举报

18#
ID:575981 发表于 2020-2-26 00:13 | 只看该作者
感谢感谢,来看看能不能用。
回复

使用道具 举报

19#
ID:522068 发表于 2020-4-14 14:14 | 只看该作者
学习一下 谢谢啊
回复

使用道具 举报

20#
ID:729819 发表于 2020-4-15 16:00 | 只看该作者
好东西
回复

使用道具 举报

21#
ID:839438 发表于 2021-8-14 15:14 | 只看该作者
学习一下还有这么强大东西分享
回复

使用道具 举报

22#
ID:980550 发表于 2021-11-13 11:18 | 只看该作者
刚好能用上,谢谢。
回复

使用道具 举报

23#
ID:490458 发表于 2021-11-13 19:31 | 只看该作者
任我学 发表于 2018-8-9 15:55
不知道有没有对大型电机机组瞬时启动或停止相对应动态补偿功能

你也真敢想,这个对各家公司来说都是机密资料。
回复

使用道具 举报

24#
ID:837737 发表于 2023-5-10 15:38 | 只看该作者
谢谢谢!我还不知道,这些源码对应的硬件系统是哪个,有没有谁能提供硬件的资料
回复

使用道具 举报

25#
ID:837737 发表于 2023-5-10 15:46 | 只看该作者
我马上搞硬件,有没有人帮我整出一台样机来。
回复

使用道具 举报

26#
ID:837737 发表于 2023-5-10 15:48 | 只看该作者
无功补偿控制器STM32程序 智能电容控制器,硬件谁有,发一下。
回复

使用道具 举报

27#
ID:837737 发表于 2023-5-10 15:51 | 只看该作者
需要硬件资料,谁有发来。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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