:STM32G4板卡试用—NUCLEO( 二 )
5、UART、定时器和GPIO
系统时钟配置和UART、定时器、GPIO初始化相关代码由STM32CubeMX生成 , 这个软件大家都会用 , 我用过后的感觉是 , 简单、实用 , 不需要像使用K6x一样 , 看手册、了解时钟门、看寄存器配置等等 。不过使用这个软件不是说不需要了解寄存器配置 , 而是能简化我们的开发 。
CubeMX的配置界面如下图:
文章图片
文章图片
6、执行效果
有了前面的准备工作 , 加之原来基于K6x的工程就是模块化设计的 , 软件很快就正常工作了 , 下图展示了NUCLEO板与通讯基带板的连接、调试界面获取到的调试信息等 。软件运行效果与K6x的效果完全相同 。
文章图片
文章图片
开发板通过一个TTL转232 , 连接到通讯基带板上
文章图片
文章图片
基带板的连接
文章图片
文章图片
调试口收到的信息 , 与K6x控制时的效果完全相同
问题和试用体会
多年没用STM32系列的MCU , 软件架构确实发生了非常大的变化 , 谈以下几点感受:
① SDK和CubeMX使用:配合CubeMX的SDK , 确实功能强大 , 但相对NXP的SDK来说 , ST的SDK里的例程 , 没有NXP的例程通俗易懂 。当然配合CubeMX后 , 效果和体验确实不一样 。
② 定时器配置问题:CubeMX生成的代码 , 只是初始化了定时器 , 使能了中断 , 需要用户启动定时器和中断 , 代码如下:
HAL_TIM_Base_Start_IT(htim_base);
HAL_TIM_Base_Start(htim_base);
之前没有用过CubeMX生成的代码 , 在这里还是卡壳了一下 , 不过查看了寄存器配置 , 发现定时器没有起来 , 配置一下 , 也还方便 。
再提一点 , 由于之前一直用IAR7 , 这次用IAR8发现 , 它的寄存器查看器 , 打开后只看到了CPU寄存器 , 没有外设寄存器 , 需要右键单击选择寄存器组才行 。
③ UART配置问题:与定时器一样 , CubeMX生成的串口 , 进不了中断 。同样调用HAL_UART_Receive_IT()函数 , 问题解决 。
④ 栈分配:调试过程中出了个问题 , UART5串口接收数据不正常 。
我用TTL转USB接电脑调试 , 运行正常;用开发板接通讯基带板 , 单步跑也正常 , 全速跑时就会报错 , 软件跑飞 。CubeMX生成工程时的栈大小为0x400 , 与原来K6x的一样 , 本想着没有什么问题的 , 但根据之前项目的经验 , 怀疑是栈空间不够 , 将栈大小改为0x800 , 问题解决了 。可能是SDK不一样 , STM32的SDK函数调用深度更深 , 需要的栈资源也更大吧 。
【:STM32G4板卡试用—NUCLEO】总体来讲 , 这次试用感受很好 。由于工作项目压力大 , 收到板子后 , 试用只能在周末和平常的业余时间弄 , 推进速度较慢 , 前后用了3个礼拜的时间 , 但这也从另一方面证明了STM32的开发门槛和难度确实不高 , 易用性很高 。在了解了STM32架构后 , 我想后续使用STM32其他系列的产品也会很快上手 。
推荐阅读
- 【cnBeta】Play商城新规让订阅更透明:试用期结束/续订会通知用户
- [趣头条]智能水杯新玩法,你要的健康都在这里,小水怪智能水杯试用体验。
- 『影像新势力NTimageTB』一袭天鹅白,vivo S6试用体验
- 『影剑评测』HIFIMAN DEVA平板耳机蓝牙音质获得烧友广泛认可,这块板卡很关键
- 『』远程AR协助 爱普生Epson MOVERIO BT
- :M4/3全新力作 奥林巴斯OM-D E-M1 Mark III试用报告
- 『』三星Galaxy S10更新功能试用 新增部分S20的拍照功能
- 「九阳」滤水壶真的有用?试用九阳滤水壶,后悔买晚了
- 「」淘宝电商运营 | 淘宝试用的玩法
- 「屏幕」免费送!最顶级的屏幕体验,OPPO Find X2 免费试用 | 糖纸众测
