哈哈,先祝论坛的各位坛友和辛苦的管理员们+版主,新年快乐。。。。2016,,666大顺。。。。
那就先从学习西门子的PLC开始!
最早接触编程是在国外留学,选择的专业是电子专业。。里面包含自动化控制课程,这就是对编程的慢慢喜欢的开始。一开始,看到编程就头大。因为语言问题,很多对于他们本国人的已经算难懂的专业词汇让我更加的头疼,一边要解决语言问题,一边要解决成绩问题,就这样似懂非懂的把自己混毕业了,然后找了个不相干的行业工作了。
因为个人原因回国发展,回国后个人的时间多了一些,偶然的一次机会遇到了Arduino UNO,开始被Arduino简易的编程方式吸引了,就去X宝淘了一块开发板套件,各种传感器(温度,按键,1602 LCD,红外遥控器和接收头。。等等)。把所有的例程都玩了个遍,确实信心爆满足啊。。但是想要玩新的器件,如果在Arduino下没找到配套的库,就抓瞎了。。。不知道如何是好,所以决定要从底层,慢慢学习。。就这样。。。。把目光转移到了近几年最火的STM32系列单片机的身上了。。到网络上查询各种教程系列非常的丰富。。
从这就开始了我的STM32之旅,直接上X宝买了套件:
然后跟着套件里的视频+例程。。一边又一边的看视频,看C语言,看各种相关的Blog和教程。。。几乎把所有业余的时间都用到了学习STM32上了。几乎快忘记了Arduino的存在了。。
业余时间里一天天的随着代码错与对,被来回重复的擦写。。。但是基础薄弱的我,还是很多东西不懂和难以理解,可能因为很久没有碰编程的原因,学习起来还是很吃力。。。不过还是硬着头皮,慢慢的一边又一边的重复同样的事情。一次有一次的被一个又一个的Bug弄的崩溃了。。。时间也随着乏味的找错过程,慢慢的逝去了。。
偶然的一次机会,在查找问题时找到了与非网,然后就一直没有离开过。。加了STM32 QQ3群里,结识很多大师,学习了很多有用的知识。。。。也在论坛抢开发板的活动中,得到几块NUCLEO开发板(F303 和F030)。。在这要再次感谢论坛,希望越办越好哈哈,当然是发板子的活动多多益善啊。。。。。。。。。。。。
那来点干货吧!!!
使用NUCLEO- STM32F030R8作为主控-控制MPPT以CVT方式控制输出电压。
1. 这个项目使用CubeMx4.11 建的工程,因为4.12 BUG的问题(ADC Cube设置后,生成的代码不全,只有一个通道。。。。)调试过程中出现很多问题,所以尝试用4.11 通过了所有的功能测试。。。。 希望ST官方可以尽快修复BUG啊。。。。。。
好了先从CUBE配置外设开始。 选择外部晶振。。
SPI配置:
LCD控制引脚配置:
串口DAM配置:
ADC DMA 多通道配置:
定时器3配置:
BOOST 计数工具。。。
2. 好了接下来介绍下功能:
可以直接应用于光伏发电项目的离网充电系统:
电压工作范围:光伏发电板输入空载DC21v-60v输出范围DC24v-120v 充电电流:0-30A的输入电流 最大输出功率:300w散热条件好的情况下可以达到500w LCD:显示电压控制器工作温度 保护功能:夜间防止流,过压保护,低压保护,过温保护 可以通过串口设置或者APP(可添加按键设置)
3. STM32F030R8主控使用外设配置:
配置TIMER3: 2个通道作为PWM输出频率50Khz:通道1和通道2
配置SPI2:LCD显示功能:PB13PB14 PB15 PC4 PF4 PF5
配置ADC:DMA方式获取PA0 PA1PA4和内部Vrefint
配置 UART:使用DMA IDLE中断空闲接收数据
使用内部Flash存储数据必须通过验证才能保存到flash指定的地址里。固化到程序里
4. 功率部分使用主要器件:
LM2576HVS 支持最高63v的DC电压降压可调设置 IR2110s MOS管驱动IC 30A 100uH的电感 150v 60a的MOS管和200v的肖基特二极管
电容,电感,电阻不等。。。。
程序函数部分截图:
宏定义部分: 函数部分:
内部FLASH擦写函数:
数据验证和固化部分:
串口调试截图:
先上LCD测试图片:
后续继续更新:(因为天气原因,一直下雨,没有太阳不能实际测试。。后续会继续更新。。)
先把测试通过的bin和hex文件分享下:
STM32F030R8_BOOST_MPPT_HEX.rar
(24.33 KB, 下载次数: 33)
|