首页 > 其他分享 >STM32快速上手踩坑记录(keil5+CubeMX安装+实现SPI通信)

STM32快速上手踩坑记录(keil5+CubeMX安装+实现SPI通信)

时间:2023-11-21 09:13:19浏览次数:36  
标签:教程 引脚 博客 STM32 SPI CSDN CubeMX 下载

硬件:ST-LINK v2+STM32F103C8T6+Kingst逻辑分析仪

  • TM32F103C8T6引脚图

STM32F103C8T6引脚图及引脚功能说明_stm32f103c8t6引脚图及功能_eewj的博客-CSDN博客

  • 安装keil5

官网下载:Keil Product Downloads

点击MDK-Arm下载即可,目前最新版本是5.38,公司信息什么的随便填一下,下载之后不需要破解就能用

安装教程参考:Keil 5 安装教程(最新最全最详细)附网盘资源-CSDN博客

不过实际操作时发现上面链接里的旧版本装完之后打不开,所以就干脆装了最新的

如果芯片包由于网络原因装不上可以参考:【精选】【工具使用】Keil5软件使用-基础使用篇_keil uvision5使用教程-CSDN博客

芯片包官网下载:https://www.keil.com/dd2/Pack/

  • 新建工程

推荐b站教程:[2-2] 新建工程_哔哩哔哩_bilibili

p4是新建工程,讲的很细节

新版编译会报一堆error和warning,可参考弹幕红字大佬解决,编译报错/警告解决办法:   1. 魔术棒->​C/C+​+(AC6)-> Language C -> c99   2. 移除core_cm3.c​

  • 安装CubeMX

官网下载:STM32CubeMX: Graphical tool - STMicroelectronics - STMicroelectronics

懒得邮箱认证的话,用大佬的直链:STM32CubeMX 6.8.1 Windows 下载链接(直链)_stm32cubemx下载_22842329的博客-CSDN博客

目前新版已经不需要先装java了,不过安装在D盘自建文件夹时不知道什么毛病会打不开软件,只好装C盘默认目录了

  • HAL库使用+SPI通信

推荐b站教程:STM32HAL库纯使用向教学,STM32HAL库学习(十一) SPI(使用W25Q64)_哔哩哔哩_bilibili

或者文字版教程(和视频基本上是一致的):【STM32】HAL库 STM32CubeMX教程十四---SPI_hal_spi_transmit_it-CSDN博客

生成基本代码之后,由于是用同一个stm32同时实现SPI收发所以代码有所不同

代码参考:用HAL库函数实现一片STM32的两个SPI接口相互通信_hal_spi_mspinit-CSDN博客

编译时会报两个逆天error,是软件bug,解决参考:勾选Use Microlib报错,解决编译出现Undefined symbol __use_two_region_memory 和Undefined symbol __initial_sp的问题-CSDN博客

暂时先记到这里,后面功能完善之后重新贴代码

标签:教程,引脚,博客,STM32,SPI,CSDN,CubeMX,下载
From: https://www.cnblogs.com/AntennaZ/p/17845445.html

相关文章

  • 2023版 STM32实战3 按键外部中断(电路与代码都讲解)
    常规电路(带上拉电阻)阻值可选3.3/4.7/5.1/10单位K  偷懒电路利用GPIO内部的上拉模式 代码(直接拷贝使用)这是一个外部中断控制变量a增加减少的demo为了新手方便我直接都写在了main.c文件 #include"stm32f10x.h"u8keyflag=0;u8a=0;voidKEY_Init(void){......
  • SPI总线
    SPI:一种高速、全双工、同步串行的通信总线。主、从模式:一个SPI系统包含有且仅有一个主设备、多个从设备。主设备提供时钟、发起读写操作,从设备接受时钟信号,响应读写操作。当存在多个从设备时,通过片选线进行处理。信号线:MISO:(o:out,对于从设备来说为输出)主设备输入/从设备输出引......
  • 十四.SPI使用1——SPI基础和ICM20608的使用
    在日常设备使用中,最常用通讯协议就是I2C和SPI了,前面过了一遍I2C,I2C接口速度最快能到400K,但是SPI能到几时兆。下面我们来实现SPI的使用。SPI接口SPI硬件定义SPI和I2C一样属于一种串行通讯协议,但是I2C需要2根线实现通讯,这样就限制了传输的速度;SPI则需要4根线才能数据通信(如果是......
  • Linux驱动开发十九.SPI驱动开发
    SPI是一种非常常用的串行通讯协议,今天我们过一遍如何在Linux下试下SPI驱动的编写,并且借助一个IC来实现ARM主机通过SPI和外设之间进行数据交互。Linux下的SPI框架SPI在Linux中也是以一种Bus呈现出来的。和前面我们做的Platform总线一样,只不过platform是一种虚拟的总线而SPI是一种......
  • STM32固件库开发流程
    1.新建工程模板文件夹名字设为fwlib-Template另外新建4个文件夹,Project是工程文件,libraries存放固件库,user存放自己写的代码,Doc存放说明,最后是清除编译文件的代码。2.新建工程将工程保存在前面新建的Project文件夹中再选择所用的芯片型号3.添加组文件夹其中CMSIS如下:......
  • 基于mdev实现adb热插拔(@STM32MP157D+fusb302)
    关键词:fusb302、uevent、mdev、adbd等等。1fusb302关于USB插拔检测,以及增加uevent事件fsusb302支持USBPowerDelivery协议(USBPowerDelivery),支持识别各种USB设备和对应的状态。fusb302支持DRP(DualRolePower)、DFP(DownstreamFacingPort)、UFP(UpstreamFacingPort)......
  • STM32407ZE一些引脚的位置
    TFTLCD引脚RTOSCLK1234567891011121314151617F12D4D14D0E7E9E11E13E15D9GND3.3VGND5VF11MO空B0G14D5G15D15D1E8E10E12E14D8D10B153.3......
  • (STM32)TIM输出比较
    TIM输出比较(OC):主要功能输出PWM波形,PWM波形是驱动电机的必要条件,所以信息TIM输出比较就等于学习PWMCNT:计数器,计数自增,CCR:捕获比较寄存器,程序员给定的一个值当CNT,大于、小于、大于CCR时,输出就会置0,置1,置0....,一个不断跳变的pwm的波形每个高级定时器和通用定时器都拥......
  • 基于stm32H730的解决方案开发之SD卡的读写调试
    一概述在嵌入式小系统领域,SD卡存储是一个非常重要的功能。可从难度上,它又是非常难的。因为它涉及到两个大的功能点,一个是文件系统,这个难度非一般。另外一个是sd卡的底层驱动。涉及到的接口多,所以也是一个难度高的地方。两个混合在一起,非常容易出问题。笔者在这块花费了很多时......
  • 2023版 STM32实战1 LED灯驱动(电路与代码都讲解)
    电路图常规画法(带限流电阻计算公式)设LED电流为20mA(统一单位为0.02A)电压为3.3V限流电阻=(电源电压-负载正向工作电压)/工作电流限流电阻=(5V-3.3V)/0.02mA=1.7/V0.02A=85R省事画法(直接用IO输出)代码(直接拷贝使用)找对引脚!!!这是一个LED闪烁的demo为了新手方便我直接都写在了main.c......