标题: 无功补偿控制器STM32程序 智能电容控制器 [打印本页]

作者: wujh_    时间: 2017-4-24 08:07
标题: 无功补偿控制器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)

作者: gqy001    时间: 2017-11-9 11:05
正需要,谢谢!
作者: hkldd    时间: 2017-12-13 09:26
正需要,好东东,谢谢!
作者: lanpizhu    时间: 2018-1-22 01:50
啥用也没有

作者: y1z2f4    时间: 2018-8-4 08:59
看看什么情况?
作者: hunyuanqi    时间: 2018-8-4 19:57
看看,学习学习!!!!!!!!!!!!!!!!!!!!!!
作者: 任我学    时间: 2018-8-9 15:55
不知道有没有对大型电机机组瞬时启动或停止相对应动态补偿功能
作者: lxr12    时间: 2018-10-27 22:38
开源了,学习一下
作者: lxr12    时间: 2018-10-27 22:39
不知道有没有对大型电机机组瞬时启动或停止相对应动态补偿功能,动态补偿有的,设计要求高
作者: 4611832336    时间: 2018-11-14 15:22
不是我想要的
作者: lxr12    时间: 2018-12-24 23:49
ACS712

作者: Edwardlyo    时间: 2019-4-19 20:31
怎么用

作者: Domoke    时间: 2019-7-25 10:47
学习学习
作者: lbq666    时间: 2019-8-17 16:43
有原理图吗
作者: zhengguo_wang    时间: 2019-8-19 10:28
谢谢,这个对于产品很有用
作者: 战士小尾    时间: 2019-8-22 17:04
学习啦
作者: yjwpm    时间: 2019-12-24 12:57
谢谢,这个对于产品很有用
作者: momo12390    时间: 2020-2-26 00:13
感谢感谢,来看看能不能用。
作者: kkkllqw    时间: 2020-4-14 14:14
学习一下 谢谢啊
作者: ddmmei    时间: 2020-4-15 16:00
好东西
作者: 我会想你的    时间: 2021-8-14 15:14
学习一下还有这么强大东西分享
作者: jdzou    时间: 2021-11-13 11:18
刚好能用上,谢谢。
作者: shenchaobiao    时间: 2021-11-13 19:31
任我学 发表于 2018-8-9 15:55
不知道有没有对大型电机机组瞬时启动或停止相对应动态补偿功能

你也真敢想,这个对各家公司来说都是机密资料。
作者: 郑治    时间: 2023-5-10 15:38
谢谢谢!我还不知道,这些源码对应的硬件系统是哪个,有没有谁能提供硬件的资料
作者: 郑治    时间: 2023-5-10 15:46
我马上搞硬件,有没有人帮我整出一台样机来。
作者: 郑治    时间: 2023-5-10 15:48
无功补偿控制器STM32程序 智能电容控制器,硬件谁有,发一下。
作者: 郑治    时间: 2023-5-10 15:51
需要硬件资料,谁有发来。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1