stm32芯片资料笔记

STM32 F 103 C 8 T 6
STM32基于arm的32位控制器
F 通用类型
101 基本型
102 带USB基本型
103 增强型
105或107 互联型 带网络控制器的
C引脚数目
T=36脚
C=48脚
R=64脚
V=100脚
Z=144脚
C 闪存存储器容量
4=16k字节的闪存存储器
6=32k字节的闪存存储器
8=64k字节的闪存存储器
B=128k字节的闪存存储器
C=256k字节的闪存存储器
D=384k字节的闪存存储器
E=512k字节的闪存存储器
stm32的高为3.3v 低电压为0v
强大的时钟系统
内部锁向环 晶振放大器
多达11个定时器
//注释 USART1 TX 串口1的发送引脚
//TIM1 CH2 定时器1的通道2端口
表格内有FT表示能承受5v电压
stm32有7组io口 每组io口有16个引脚 分别是gpioA-gpioG PA0-PA15
GPIO工作模式
模式一 浮空输入 输入1或者0 读取1或者0
模式二 上拉输入 输入1或者0 读取1
模式三 下拉输入 输入1或者0 读取0
模式四 模拟输入电压 读取0-3.3v的电压
模式五 开漏输出模式 io口类似浮空状态 收到外接上拉下拉的影响
输入1 受到上拉下拉影响 输入0 输出0 读取0
模式六 复用开漏输出模式 与模式五类似 唯一区别 输出控制电路的来源不同
模式七 推挽式输出模式 输出1 pmos导通 接上vdd 输出为1 输出0 nmos导通 接上vss
输出为0
模式八 推挽式复用模式 与模式七类似 输出控制电路的来源不同
推挽输出可以连接强高低电平 连接数字器件 开漏输出只能输出强低电平 强高电平靠外拉
端口清除置位寄存器 bsrr
端口复用的意义 最大限度的利用端口的资源
2020.11.5
关于元器件
有黄色箭头指向的是一脚(引脚1)
接天线的头子 最前面那个焊点对应的是元器件底部伸出来的那一块
电源管理芯片TXB0108EPWR
在板子上凹进去的表示是向上的 芯片左上角的原点对应着向上的方向
dp表示光耦 有点子那一头对应板子上的原点
q11 q12暂时不焊
j3y是npn型的三极管
m5是pnp型的三极管
电容22uf 10v a3216 带黑色箭头的为正
如果板子上面没有正负级标志 则需要自己判断 判断方法为看pcb图 哪边接的vcc哪边接的gnd
smf05c 是五个二极管集成在一起 五个管子正极连接在一起引出一根线 五个负级分别引出 一共六个脚 既可以作为二极管用 也可以用来作为选通控制器
q11换成电阻
vdc 就是可靠电压隔离的最大值
mtbf 正常工作时间
2020.11.9
nvic中断优先级管理
分为 抢占优先级和响应优先级
抢占优先级高可以打断抢占优先级低的
响应优先级高的不能打断响应优先级低的
当中断同时发生的时候 响应优先级高的先执行
当两个抢占优先级 和响应优先级都相同时 哪个先发生 哪个就先执行
如果需要进行中断操作 在主函数里面 在较前面的位置 把中断优先级设置好
misc里面有系统优先级设置的函数
中断设置相关寄存器设置 在core cm3.h文件里
ip寄存器 是来设置单个中断的优先级设置
ip寄存器【7,4】位来配置中断
iser寄存器(中断使能寄存器)用来使能中断 这个寄存器有32位 每一位控制一个中断使能 stm32有60个屏蔽中断
所以需要有两个寄存器 iser1 和iser2
配置中断和使能都在库函数 nvic init这个函数中来设置
icer 来失能中断 同理对应60个中断 有icer1和icer2
2020.11.10
比特位可以映射到地址上去
通过访问地址 达到了访问比特位的目的
比如我有这个比特位 我通过位操作 为他改变 则把这个比特位膨胀为32位的地址 然后先把地址处的值读到内部缓冲区(空白处)
然后把他改变了 再写回给地址里面
m3芯片里面 有几个区能够支持位带操作 简单理解为 把一个比特膨胀为地址 开头为位带地址 精确到自己为位带别名区地址
位带操作的优势其实是更加方便 省区读取整个寄存器这一步
2020.11.11
入口参数如果是xx结尾位x的话 则大概率是你要使用设备的标号
结构体通过入口参数进去访问他的有效值
baudrate意思是波特率
wordlength字长
parity奇偶校验位
usart mode 发生接受使能
11.12 晚上
遥控器的协议
nec指令
数据包括 同步码头 由9ms的低电平和一个4.5ms的高电平组成 简单来理解
就是开始标志
地址码 为了区分 红外遥控器的唯一性 反码就是把1变0 同理0
反码的目的是为了增加传输的可靠性
组成为
同步码+地址码+地址反码+控制码+控制反码
注意是由低到高 从右边往左边写
2020.11.13
滤波实际上的要求 是为了实现频率一致
输入捕获实际流程是------------输入–滤波–设置上升或者下降捕获–映射到自己或别人(都仅表示一个通道 )
—捕获分频 比如捕获到一次/两次/四次/八次 边沿信号 触发一次中断 —通过设置一个十六位的寄存器来开启中断(TIMx_DIER)
11.13 晚上
输入捕获初始化结构体有效值
通道选择
通道映射
上升或者下降沿捕获
分频系数
滤波
2020.11.14
所有的外部中断线 只能用线0-15
中断线十六根 可以映射到112个io上面
每一个中断线 都可以设置触发方式 以及使能
中断线0-4单独对应四个中断服务函数
线5-9,10-15 都只对应一个服务函数
函数名为 EXIT0_IRQHandler 这就是中断线0的中断服务函数
外部中断常用的四个函数
设置io口和中断线的ying映射关系
设置触发方式等
判断中断是否发生
清楚中断线的中断标志位
中断服务函数在stm32f10x_hd.s
2020.11.16
触摸屏按键
tpad_init 函数
获取10次未触摸的时间 然后存放在数组 通过算法 进行排序
排序完成 去掉最高和最低 取得平均时间
tpad reset 函数
设置放电
放电完成 等待一段时间
然后把计数器时间清零
端口配置为浮空输入
tpad reset
等待充电完成(上升沿则为充电完成)
返回值为 充电完成时间
tpad get maxval
连续获取值 得到最大值
2020.11.16
它们都是单片机dao的du低功耗运行方式.(本段抄自百度搜索)
power-down也就是掉电工zhi作模式dao,你一版但进入了掉电模式,单片机内部权的振荡器就会停止工作,也就是说.时钟被冻结了,这时所有功能都无法实现,但有一点,芯片内部RAM的内容是保持不变的.什么功能都被冻结,功耗当然小,此时,只要用2V左右的电源就可以了,耗电电流也降到了微安级.
2020.11.16 下午
触摸屏按键
tpad_init 函数
获取10次未触摸的时间 然后存放在数组 通过算法 进行排序
排序完成 去掉最高和最低 取得平均时间
tpad reset 函数
设置放电
放电完成 等待一段时间
然后把计数器时间清零
端口配置为浮空输入
tpad reset
等待充电完成(上升沿则为充电完成)
返回值为 充电完成时间
tpad get maxval
连续获取值 得到最大值
11.16下午
每一个像素都有一个薄膜晶体管
可以提高图形的质量
广泛用于 电视 手机 平板 电脑
如果只显示图像的话 则只需要接cs(片选)wr(写信号)rd(读信号)
和16位双向数据线
tftlcd 16位并口驱动简介
先根据写入/读取的数据的类型 设置为rs为高 写数据 rs为低 写命令 然后拉低片选
读数据 在rd的上升沿 写数据 在wr的上升沿 使数据写入到显示屏里面
11.16晚上
tflcd驱动流程
硬件复位
初始化序列(lcd厂家驱动)
设置坐标-写入gram指令-写入颜色数据-lcd显示(写函数)
设置坐标-读取gram指令-读出颜色数据-单片机处理(读函数)
rgb565的格式 d0-d4蓝色 d5-d10绿色 d11-d15 红色
举例 如果采用全红 格式应该为11111 000000 00000
ili9341的指令都是低八位的 只有读写的时候是16位 其他操作参数 都是8位
重要指令 0xd3 读取lcd屏幕的ID
0x36 控制ili9341存储器的读写方向
0x2a 控制横向开始点位 两个重要参数为sc和ec 也就是开始和结束 为了方便

可以只设置开始
0x2b 和0x2a同理 sp和ep 为开始和结束 为了方便 可以只设置sp
0x2a 和0x2b组合起来 可是形成屏中屏的效果
0x2c 写颜色指令 数据有效为扩展至16位
0x2e 读颜色指令 同16位
2020.11.17
随机存取存储器 (ram)随时读写 速度很快
操作lcd只需要用到 rs 数据为0-15 写 读
以及片选
fsmc支持 8/16/32 的位宽
fsmc 将外部存储划分为固定大小256字节的四个存储块(每一个为256m)
驱动nor flash sram psram 被分为四个区 每个区管理64m的字节空间
sram/nor选区寄存器(fsmc_bcrx)
一共有三种存储类型 sram 掉电丢失 psram 掉电丢失 nor
掉电不丢失
sram/nor选区时序寄存器(fsmc_btrx)
11.17晚上
lcd初始化函数流程
初始化gpio
初始化fsmc
读取lcd id
打印lcd id 到串口1
根据不同的ID执行lcd初始化代码(厂家提供的初始化代码)
lcd_display_dir(0)//默认为竖屏
lcd_LED=1; //点亮背光
lcd_Clear(while)//清屏
11.21
软件的使用
快捷键l可以打开视图配置—试图选项–特殊的转换
生成boom清单
打开原理图 点击报告 点击bill of materials
左下角的导出选项 选择导出文件格式 就是你想导出的文件格式了
单片机的几种烧写方式
1.jtag
接口除了电源线和复位引脚之外,还要用到单片机的四个引脚 工具j-link
TDI–数据输入 TMS–模式选择 TCK–时钟信号 TDO–数据输出 (全算就是7角)
2.swd
电源线
swdio 串行数据线 swclk 串行时钟线 工具j-link或者st-link
3.isp
通过usb转ttl实现
txd连接rxd
rxd链接txd
4.swim 针对stm8系列单片机 只需一根线即可 工具st-link
11.24
oled12864接线(d0 1 res dc 根据芯片引脚来定)
GND — GND
VCC — VCC
D0(SCL) — PC0
D1(SDA) — PC1
RES(RST) — PC2
DC(D/C) — PC3
CS — 悬空

封装分类
dip 直插
soic 比同等dip减少30-50的空间 厚度方面减少约70% 也是直插式
tssop 贴片

你可能感兴趣的:(stm32芯片资料笔记)