打印
[其他ST产品]

STM32G031无线温湿度仪开源项目 -2

[复制链接]
604|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
使用STM32CubeMX建立项目过程
自从ST推出了STM32CubeMX以后,建立STM32项目就简单很多了,不要去找各种各样的库函数,并且去初始化这些库函数,CubeMX通过图形化的界面很容易就将各种模块的初始化搞定了,并且自动生成了项目。

接上一讲,我们这次就来建立项目:

1,打开CubeMX以后,选“通过MCU选择器来建立新项目”



好像有点慢,要耐心等待一下
找到STM32G031C8,并开始项目

使用特权

评论回复
沙发
梅花香自123|  楼主 | 2023-5-30 17:36 | 只看该作者
2,System Core部分:
SYS:选“Serial Wire”,这个是调试接口(二线调试口:SWCLK、SWDIO),一定要的,不然你的ST-LINK就连不上单片机了

使用特权

评论回复
板凳
梅花香自123|  楼主 | 2023-5-30 17:37 | 只看该作者
RCC:是晶振,都选外部晶振:

使用特权

评论回复
地板
梅花香自123|  楼主 | 2023-5-30 17:38 | 只看该作者
IWDG:独立看门狗,这个需要的,先使能,生成项目后,先把它注稀掉,不然不好调试,这个以后再讲

使用特权

评论回复
5
梅花香自123|  楼主 | 2023-5-30 17:39 | 只看该作者
3,Timers部分
RTC:实时时钟,我们先使能,并且打开“internal Wake UP”,这个主要用于低功耗的时候计时,设定MCU进入低功耗以后,设定RTC开始计时及时间间隔,RTC计时到了以后,会产生一个内部中断,这个中断会立即唤醒MCU,MCU立即从下一条程序开始执行,可以说STM32的低功耗还是很容易做的。

使用特权

评论回复
6
梅花香自123|  楼主 | 2023-5-30 17:39 | 只看该作者
Timer3: 是一个16位的计时器,我们这里打开它,并让它1MS产生一次中断。有2个用途:1,用于串口接收,当串口收到一个字节时,打开收到数据标志,TIMER3的每MS中断计时一次,如果连续6次中断没有新的串口数据,则说明串口数据接收完毕,进入数据处理程序;2,用于内部事件(EVENT)的计时,一般延时都采用HAL_Delay(),但是这个是阻塞式的,MCU在延时的时候做不了其它的工作,如果利用Timer的中断计时,计时到了以后,再置位时间标志,在主程序里面再处理相关事件,则快而且不浪费时间。

使用特权

评论回复
7
梅花香自123|  楼主 | 2023-5-30 17:40 | 只看该作者
我们主系统时钟是64M,如图设置,并且要打开Timer3的中断

使用特权

评论回复
8
梅花香自123|  楼主 | 2023-5-30 17:41 | 只看该作者
4,Connectivity部分:
UART1的设置:1,使能UART1,2,打开UART1的中断(NVIC)3,添加UART1_TX为DMA发送,我这里比较喜欢DMA发送,只要给出发送指令后,就不要管了,因为DMA是自动的;4,在GPIO Setting里面,将UART1的RX设定为内部上拉(PULL UP)
UART2的设置可以按照UART1。如果UART2没有用到,UART2的RX可以不用设定内部上拉,这样在低功耗的时候更省电

使用特权

评论回复
9
梅花香自123|  楼主 | 2023-5-30 17:41 | 只看该作者
5,建立IO口
鼠标点击对应的IO口,选择IO的性质,然后鼠标右键点击,输入“Enter User Label”,这个很重要,后面的源程序比较好管理


使用特权

评论回复
10
梅花香自123|  楼主 | 2023-5-30 17:42 | 只看该作者
7,项目管理
项目的路径及名称,按照自己的要求
需要注意的是,我们这里选STM32Cube IDE作为编译、调试环境

使用特权

评论回复
11
梅花香自123|  楼主 | 2023-5-30 17:42 | 只看该作者
在Code Genarator里面,把这几个勾上,特别是把没有用到的IO口设置为Analog口,这样可以更省电。

使用特权

评论回复
12
梅花香自123|  楼主 | 2023-5-30 17:42 | 只看该作者
8,生成项目源程序
点击“GENERATE CODE”生成项目源程序,最后记得保存项目文件
已经生成好的项目文件可以在这里下载。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

1040

帖子

0

粉丝