本帖最后由 wenyangzeng 于 2017-1-20 19:51 编辑 早在2013年,有幸在STM32/STM8社区得到1块STM32F030 Discovery,我用它实现了红外线调制发射不占用CPU运行时间资源的设想。 【STM32F030开发日志】STM32F0红外发射功能的应用(附代码) 通过这块STM32F030 Discovery的使用,我发现STM32/STM8系列的PWM(不只PWM)功能居然如此强大。从此,我就与STM32结下不解之缘,开发定位逐渐转到STM32/STM8系列来了。这些年来,我的进步离不开STM32/STM8社区的关怀支持,社区先后为我提供了STM32F432Nucloe、STM32F412Nucloe、STM32F769IDiscovery等开发板。STM32是我的嵌入式学习、成长的好平台。我非常珍惜这一切,每次拿到开发板,我都能认真进行评测,在社区发贴将评测结果与大家分享,大家进步才是进步。 (1)对STM32最想说的话 随着ST面向对象抽象层HAL编程方式的兴起,HAL编程是理所当然的。一接触到STM32CubeMX,就被其独特的图形界面和方便性深深吸引。而STM32Cube_FW_xx库,应该可以说是STM32CubeMX的孪生兄弟了,我们在STM32CubeMX中配置完成后,可以从STM32Cube_FW_xx移植官方代码,加速开发过程。岂料,这种移植并不很顺利,比如:我们对ADC进行初始化, STM32CubeMX 是这样写的: HAL_ADC_Init(&hadc1); STM32Cube_FW_xx则是这样写的: HAL_ADC_Init(&AdcHandle); 对USART的初始化,STM32CubeMX 是这样写的: HAL_UART_Init(&huart1); STM32Cube_FW_xx则是这样写的: HAL_UART_Init(&UartHandle); 移植后还得不断去修改那些(&xxxx),它们还有可能藏在哪一个.C或.H文件中。如果再执行一次STM32CubeMX,还得从头再改一次。ST能有一个统一的.h文件让自家兄弟更兼容点吗? (2)2016年发生的与STM32点点滴滴的故事 STM32F4系列的RTC比F1系列改进了不少,决定在项目中使用它。由于板子ADC要求精度较高,将数字和模拟分开供电。调试中发现尽管VBAT连接了后备电池,系统断电后RTC时钟却无法保存。花费1周时间查找原因无果。网上有网友介绍是VDDA与VDD分开供电,VDD与VDDA不是同时降低到VBAT(VDDA下降较慢)切换点所致。经过验证果然如此。考虑在PVD中断时用电子开关将VDDA切断,岂料如此设置时,当芯片通电瞬间VDDA未能同时建立供电,芯片根本无法启动。本项目夭折。ST能把这个BUG纠正了吗? 2016年,我最难忘的是有机会评测STM32F769IDiscovery这款全球领先的开发板,我移植了CoreMark、移植了FreeRTOS、移植了STemWin等等,我把评测结果都发帖社区与大家分享。我祝愿2017年社区每个人都有评测STM32的机会。我也祝愿2017年我有评测LORA和STM32H7的机会。 移植了的STemWin 96×96点阵的汉字是用STemWin软件包的FontCvtST.EXE制作的。 祝2017年大家进步,祝2017年ST更上一层楼! |
你也有可能。