NUCLEO-G0B1RE STM32G0B1RET6的学习(1)——STM32CubeIDE的安装、新建工程和配置硬件SPI

博主感觉已经有两年多没有登陆账号了,最近拿到了一块STM32官方的STM32 Nucleo板又开始重新学习STM32了。

Nucleo板的介绍:

NUCLEO-G0B1RE | Product - 意法半导体STMicroelectronics

主芯片STM32G0B1RET6属于STM32-G0系列系列,相关资料参考:

STM32_G0主流生态系统 | STMCU中文官网

英文参考手册:

STM32G0x1 advanced ARM®-based 32-bit MCUs - Reference manual

中文参考手册:

STM32G0x1 advanced ARM®-based 32-bit MCUs - Reference manual

Nucleo板的用户手册,手册有描述板上引出的排针分别对应哪个引脚:

https://www.st.com.cn/resource/en/user_manual/um2324-stm32-nucleo64-boards-mb1360-stmicroelectronics.pdf

准备更三篇初级学习有关Nucleo的板的文章,以下可跳转其他文章的位置:

NUCLEO-G0B1RE STM32G0B1RET6的学习(1)------STM32CubeIDE的安装、新建工程和配置硬件SPI-CSDN博客

NUCLEO-G0B1RE STM32G0B1RET6的学习(2)------与W25Q32的SPI通信:读取ID、擦除、写和读/解决SPI通信使用模式3的首帧异常的问题-CSDN博客

NUCLEO-G0B1RE STM32G0B1RET6的学习(3)------SPI从DMA HAL库到应用层回调函数CallBack的定义-CSDN博客

从STM32CubeIDE的安装和新建工程开始学习,Los geht's~

目录

STM32CubeIDE的安装

新建工程

通过IOC设置Clock

设置TIM定时器

设置硬件SPI

通过IOC生成代码


STM32CubeIDE的安装

STM32CubeIDE的官方download地址,选择需要的环境进行安装

STM32CubeIDE | Software - 意法半导体STMicroelectronics

新建工程

由于是基于NUCLEO-G0B1RE板的硬件开发的,所以在安装STM32CubeIDE后,选择NUCLEO板的主芯片STM32G0B1RET6

1、新建工程

File->New->STM32 Project

2、在Commercial Part Number旁边输入:STM32G0B1RET6

选择第一个,Board上有备注NUCLEO-G0B1RE的,然后点击Next

3、输入工程名称,随意输入就行

4、这里选择Yes,然后弹出需登录ST账号

" Please login to download a software package. Go to Help -> STM32Cube updates -> Connection to myST"

5、由于未登录ST账号,现在需登录ST账号

Help -> STM32Cube updates -> Connection to myST

选择"Enter myST account information"

输入ST账号的邮箱和密码(如果没有账号需先到ST官网申请账号)

6、登录后,双击ioc文件

弹出配置界面

通过IOC设置Clock

设置Clock Configuration

按需设定即可,这里我设置SYSCLK 64MHz

若想要生成的代码按照不同的外设分.c和.h,那么选择"Generate peripheral initialization as a pair of '.c/.h' files per peripheral"。可将每个外设的初始化代码生成独立的源文件(如GPIO、SPI等),而非集中生成在main.c中。此设置可有效避免代码混乱,使项目结构更清晰。(如果不需要可以不勾选)

设置TIM定时器

设置定时器的目的是在后续用于给SPI等外设延时

设置TIM7,Prescaler分频设置63,Counter Period设置999

设置中断用于累积计时

设置硬件SPI

Nucleo板作为主机,使用W25Q32作为从机

W25Q32的数据手册可以参考:【W25Q32JVSSIQ PDF数据手册】中文资料_引脚图及功能(华邦电子股份 Winbond Electronics)-采芯网

设置Data Size为8Bits,Prescaler分频设定32,产生波特率Baud Rate 2.0 MBits/s

W25Q32只能使用模式0和模式3,这里设置CPOL=1 CPHA=1,即主机设定模式3

使用SPI1,由于片选引脚直接由GPIO设置,所以此处Hardware NSS Signal选disable,设置PA1为时钟线SCK,设置PA2为MOSI,设置PA11为MISO(直接点击右侧芯片的引脚选择对应复选功能即可)

连接的引脚为下图,这个图是上文Nucleo板的用户手册中提及过的,其中的PA4是片选引脚,由于硬件SPI的NSS设置为disable,所以片选控制需在GPIO中设置

设置使用DMA(也可以不设置使用DMA)

片选引脚设置

在Categories中选择GPIO,然后在右图中点击PA4引脚,选择GPIO_Output

然后就会显示以下,设定默认输出高电平,因为W25Q32片选是低电平选中,所以初始化后先是高电平,后续通讯时才将该引脚设置为低电平输出

通过IOC生成代码

点击保存,弹出 "Do you want to generate Code?" 选择 "Yes"

选择 "Yes"

等待下载和升级软件包

选择第一个,然后点击 "Finish"

完成生成代码后,按照外设生成.c和.h,若不勾选"Generate peripheral initialization as a pair of '.c/.h' files per peripheral",则全部生成在main.c

相关推荐
hsjiasb3 小时前
FreeRTOS学习(二十六)——动态内存管理heap_1到heap_5
stm32·单片机·学习·学习笔记·freertos
LCG元4 小时前
STM32+ESP8266+MQTT 物联网气象站:从零搭建温湿度远程监测系统(附完整源码)
stm32·物联网·struts
FakeOccupational6 小时前
【电路笔记 STM32】Cortex-M7 内核上的数据缓存(D-Cache)结构+MPU+DMA&Cache+STM32CubeMX配置
笔记·stm32·缓存
殷忆枫6 小时前
基于K210与STM32的智能垃圾分类与物联网监管系统
stm32·物联网·分类
周洲08307 小时前
STM32 GPIO 外部中断深度解析:边沿触发 / 电平触发、NVIC 优先级配置、中断嵌套实战
stm32·单片机·嵌入式硬件
LCG元7 小时前
STM32F103 CAN 总线通信实战:标准库双机通信与过滤器配置精讲
stm32·单片机·嵌入式硬件
zlinear数据采集卡8 小时前
D223的PWM电机控制:6路独立脉冲+加减速算法深度解析
arm开发·stm32·嵌入式硬件·算法·fpga开发·架构
z20348315209 小时前
STM32单片机控制无源蜂鸣器播放《晴天》
stm32·单片机·嵌入式硬件
振南的单片机世界12 小时前
硬核菊花链:3个GPIO+无限74HC595=端口扩展“无限套娃”
arm开发·stm32·单片机·嵌入式硬件
LCG元15 小时前
STM32软件模拟I2C驱动多从机实战:AHT20温湿度 + BH1750光照 + 0.96寸OLED实时显示
stm32·单片机·嵌入式硬件