9475|5

34

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【Nucleo深度评测】借助STM32CubeMX 快速完成代码开发 [复制链接]

本帖最后由 abend 于 2014-12-17 22:33 编辑

首先谈谈体会:
本人没有任何硬件或者MCU开发的经验,只是一个纯软件工程师,对于什么时钟,上拉下拉一窍不通。但是借助STM32CubeMX,这次只用了半天,就基本完成了自己所需要的功能的程序主体框架开发。STM32CubeMX和HAL库确实带来了强大的生产力。

目标需求:
一个类似串口数据监控和过滤的硬件功能模块,有点sniffer的意味。即在原有的串口传输路径中插入这个硬件模块,这个硬件模块应该能接入串口数据,然后处理串口数据(比如存储传入的数据、CRC校验),最后将数据通过串口再发送出去。

所以硬件板的最基本框架就是
硬件上:
2个COM口:COM A; COM B
软件上:
COM A接收数据 再次发送给COM B;
COM B接受数据 再次发送给COM A

操作全过程:
1 安装STM32CubeMX
2 安装对应STM32CubeL0 Firmware Package到STM32CubeMX
这两点已经有多位网友发帖讲解过了,我就不重复了。

3 用STM32CubeMX 创建项目,生成MDK开发的基础项目代码:

a 配置外设(针脚)
这里主要定义了USART1、 USART2、 SPI
定义SPI 是为了未来配合BlueNRG用。 USART1的缺省定义是PA9 PA10, PA9是对应Nucelo板上的CN5-1, PA10对应CN9-7。而BlueNRG要用到CN5-1脚,所以,将UART1调整到PB6 PB7。STM32CubeMX的按住Ctrl键点击针脚自动给出备用GPIO脚的功能真是神器啊,一开始没有发现,还傻乎乎的去查Data Sheet里面的Alternate function port表,这个轻松一按,立刻搞定。                                                                                                                                                                                                        
                        
               
        


b 配置USART 参数

c 配置中断NVIC
准备采用中断方式操作串口,所以进行配置

d 指定生成MDK开发工具对应的项目代码

4 用Keil uVision5(俺是新人,还是不理解为何MDK要改这么个新名字)打开生成的项目代码 简单增加处理逻辑代码
CubeMX已经把基础代码为我们准备好,主要在USART.c中
串口时钟、GPIO pin脚定义,中断NVIC代码:


串口工作模式代码:



而我自己的新增的业务逻辑,只涉及修改两个文件:
stm32l0xx_it.c -- USART1_IRQHandler USART2_IRQHandler 增加处理逻辑
main.c -- 增加控制逻辑
调用了HAL库函数中的两个方法:
HAL_UART_Receive_IT -- 中断方式从串口接受数据
HAL_UART_Transmit -- 发送数据到串口

5 测试
再次体会到Nucleo板子的好处,USART2直接被STLink模块弄成了USB虚拟串口,只需要一个USB-TTL板接上USART1(就用了三根杜邦线连接了RX TX GND),这样两个串口都能通过USB接入电脑(我笔记本USB口不多,所以用了一个USB Hub),然后在电脑中操作读写。


USART1(USB-TTL板)在XP设备中被登记成了COM5, USART2(STLink)被登记成了COM7


用串口助手自动向两个串口发送数据,可以看到结果窗口中,每个串口都接收到了发给对方串口的数据。


横着摆好像好看一点:

6 后续工作
现在完成的只是简单的转发,后续在main.c的主控制逻辑中,可以添加诸如数据过滤,数据CRC校验,数据记录存储(不知道自己能否搞定spi驱动SD卡)。另外准备结合这次活动送的BlueNRG板子,将截获的串口通讯数据通过蓝牙发送出来,通过手机端app接收观察串口通讯数据,这也是一开始预留SPI相关GPIO pin脚的原因。






此帖出自stm32/stm8论坛

最新回复

试过,初始化设置比较简明,可是,如果你要用以前的库函数操作时,发现,名称都变了;感觉不适应,又改回去了;  详情 回复 发表于 2017-4-19 02:32

赞赏

2

查看全部赞赏

点赞 关注(1)
 

回复
举报

3836

帖子

19

TA的资源

纯净的硅(中级)

沙发
 
谢谢分享  很详细

此帖出自stm32/stm8论坛
 
 

回复

1042

帖子

6

TA的资源

纯净的硅(中级)

板凳
 

用这个软件还是比较容易的;
此帖出自stm32/stm8论坛
 
 

回复

1274

帖子

2

TA的资源

版主

4
 
软件做的都是不错,
是主流,用起来也很方便!
就是这个名字,越看越“苦逼”!
此帖出自stm32/stm8论坛
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(初级)

5
 
谢谢楼主的分享!好详细!
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(中级)

6
 
试过,初始化设置比较简明,可是,如果你要用以前的库函数操作时,发现,名称都变了;感觉不适应,又改回去了;
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表