文章目录
一、利用Altium Designer 18绘制原理图
1 Altium Designer 18的安装
1.1 下载和破解
百度网盘下载链接:Altium Designer 18
提取码:fnr9
下载完毕之后,我们解压出来可以得到如下文件夹。
选择安装程序。
直接点击next。
可以根据个人需要决定需不需要汉化。(可能安装完毕后并没有看见汉化,关闭后重新进入就会看见汉化了。)
接下来一直next就可,安装路径选择自己能一下找到的为后面破解做准备。
点击finish后,找到shfolder.dll文件。复制这个文件。
找到安装路径。在X2.exe的目录下,将文件粘贴进去,替换掉之前的文件。
然后我们就可以打开Altium Designer 18。找到license管理进行破解。
在和谐包中任意选一个就可以。
再进行本地化勾选。
现在我们已经可以正常使用了。
1.2 添加元件库
Altium Designer 18里面有一些元件库,但为了下面画图比较方便,我们再加入需要的元件库。(因为Altium Designer 18还可以自己设计画出元件,所以应用泛性很高。)
百度网盘下载链接:元件库.zip
提取码:luha
同样解压缩,还是放到自己方便找到的路径。
然后我们进入Altium Designer 18。选择从文件中安装。
选中元件库的三个文件。
添加后直接close就可以了。
2 stm32最小系统的电路原理图
双击添加到画板开始作图。所以元器件寻找都是这个过程。
电源和地端口:
选中元器件后按TAB键可以进行信息修改,按回车修改完成。接下来就可以开始绘图了。
stm32f103c8t6芯片
指示灯
R:Miscellaneous Devices LC.IntLib 元件库中搜索 0805 1k
D:Miscellaneous Devices LC.IntLib 元件库中搜索 0603
去耦电路
C:Miscellaneous Devices LC.IntLib 元件库中搜索 0805 100nf
晶振电路
Y:Miscellaneous Devices.IntLib 元件库中搜索 XTAL
C:Miscellaneous Devices LC.IntLib 元件库中搜索 0805 22pf
复位电路
S:Miscellaneous Devices.IntLib 元件库中搜索 SW-PB
C:Miscellaneous Devices LC.IntLib 元件库中搜索 0805 1uf
降压电路
AMS1117:stm32f103c8t6 最小系统.SchLib 元件库中
下载方式选择及程序烧录接口
P:Miscellaneous Connectors.IntLib 元件库中搜索 MHDR
输入、输出电源
J:base.SchLib 元件库中搜索 USB micro
排针
P:Miscellaneous Connectors.IntLib 元件库中搜索 MHDR1X16
3 STM32+SD卡 的系统原理图设计
3.1 SD卡物理结构
SD 卡包括有存储单元、存储单元接口、电源检测、卡及接口控制器和接口驱动器 5 个部分。
存储单元:是存储数据部件,存储单元通过存储单元接口与卡控制单元进行数据传输;
电源检测单元:保证 SD 卡工作在合适的电压下,如出现掉电或上状态时,它会使控制单元和存储单元接口复位;
卡及接口控制单元:控制 SD 卡的运行状态,它包括有 8 个寄存器;
接口驱动器:控制 SD 卡引脚的输入输出。
3.2 SD卡引脚定义
3.3 STM32+SD卡 的系统原理图绘制
在之前STM32的原理图上进行绘制。
SD卡原理图
AMS1117:stm32f103c8t6 最小系统.SchLib 元件库中
P:Miscellaneous Connectors.IntLib 元件库中搜索 MHDR
C:Miscellaneous Devices LC.IntLib 元件库中搜索 0805 100uf
STM32+SD卡总览
二、SD卡的数据读取
1 建立工程
配置FATFS:
配置SYS:
GPIO口设置:
SPI设置:
USART1设置:
时钟设置:
生成工程:
2 修改代码
百度网盘链接:头文件下载
提取码:fb1b
将两个文件添加到自己的工程中。接下来修改代码。
user_diskio.c:
头文件添加:
#include "diskio.h" /* Declarations of disk functions */
#include "SDdriver.h"
uint8_t res;
res = SD_init();//SD_Initialize()
if(res)//STM32 SPI的bug,在sd卡操作失败的时候如果不执行下面的语句,可能导致SPI读写异常
{
SPI_setspeed(SPI_BAUDRATEPRESCALER_256);
spi_readwrite(0xff);//提供额外的8个时钟
SPI_setspeed(SPI_BAUDRATEPRESCALER_2);
}
if(res)return STA_NOINIT;
else return RES_OK; //初始化成功
main.c:
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file : main.c
* @brief : Main program body
******************************************************************************
* @attention
*
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
* All rights reserved.</center></h2>
*
* This software component is licensed by ST under Ultimate Liberty license
* SLA0044, the "License"; You may not use this file except in compliance with
* the License. You may obtain a copy of the License at:
* www.st.com/SLA0044
*
******************************************************************************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "fatfs.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "SDdriver.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/