STM32
Something about STM32.
这个我会
Code is cheap, Talk to me.
展开
-
I2C向SSD1306的OLED连续发送数据
使用驱动芯片SSD1306的OLED时, 我使用的是I2C通信在看网上一些代码时, 发现基本都是每发送一个字节命令/数据, 都会发送信号, 从机地址, 发送完后就立马发送终止信号, 整个流程像这样:起始信号-发送从机地址-控制字节-数据字节-终止信号发送一个命令/数据相关代码void OLED_WR_Byte(u8 dat,u8 mode){ I2C_Start(); Send_Byte(0x78); I2C_WaitAck(); if(mode){Send_Byte(0x40);}原创 2020-11-25 15:42:39 · 2413 阅读 · 7 评论 -
I2C与EEPROM通信 上电时SDA为0
情况说明在自己写STM32模拟I2C中, 写到向EEPROM进行Page Write, 然后Random Read读出所写内容.发现复位6次中, 5次会读写失败, 1次会成功.失败的原因是: 发送起始信号前检测到SDA被拉低, 认为总线被占用.于是我在配置SDA SCL的端口时, 并将两者端口都输出了高电平. 但是这个输出对SDA并不起作用.于是我在线调试, 发现失败例子中, 一上电未执行任何函数时, SCL为1, SDA为0, 即SDA为低电平, 由于SCL是开漏输出, 电路中已经接好上拉电阻,原创 2020-11-21 22:46:17 · 1157 阅读 · 0 评论 -
stm32 SysTick/EXTI/USART中断过程
本文中例子所使用的是stm32f103+标准库函数, 声明.SysTick中断过程SysTick是配置好重装载计数器(STK_LOAD)后, 并使能了SysTick.SysTick功能框图每当随着STK_CLK, 只要递减计数器(STK_VAL)慢慢减到0后, 就会发生一次中断, 进入到SysTick的中断服务函数中.也就是每过(STK_LOAD/STK_CLK)时间, 就发生一次中断, 进入到中断服务函数中.EXTI中断过程EXTI功能框图EXTI是外部中断, 配置好某个GPIO口,原创 2020-09-25 23:55:14 · 3346 阅读 · 0 评论 -
STM32红外遥控NEC协议
简介NEC协议是众多红外遥控协议的其中一种, 在借助了正点原子的视频后总结了如下笔记, 如有错误请各方大佬们指教!SHOUT OUT TO 正点原子红外遥控实验发送端原理NEC协议发出的一帧数据包括: 同步(引导)码, 地址码, 地址反码, 控制码, 控制反码, 连发(重复)码其中地址码, 地址反码, 控制码, 控制反码的逻辑’1’和逻辑’0’表示如下逻辑’1’:2.25ms(560us脉冲+1680us低电平)逻辑’0’: 1.125ms(560us脉冲+560us低电平)其中高电平的原创 2020-09-08 20:24:41 · 1460 阅读 · 0 评论 -
UART/I2C/SPI比较
UART/I2C/SPI比较SHOUT OUT TOSPI、I2C、UART(即串口)三种串行总线详解原创 2020-08-27 18:11:27 · 330 阅读 · 0 评论 -
stm32f103高级定时器功能框图笔记
高级定时器的时钟框图外部时钟1 TIx (x=1,2,3,4) **时钟框图中的蓝色部分** 外部时钟2: ETR**时钟框图中的红色部分** 内部时钟源CK_INT 内部触发输入(ITRx)时基单元时钟框图中的黄色部分时钟源输出CK_PSC经过PSC预分频器变成CK_CNT, 频率计算公式如上图所示计数器CNT有3种模式, 配合ARR自动重载寄存器和RCR重复计数器发生更新事件递增计数模式: CNT从0计数到ARR相等, 产生上溢事件, R原创 2020-08-26 21:08:24 · 1149 阅读 · 0 评论 -
keil5打开kil4工程不兼容 device无法选择芯片
keil4工程与keil5工程后缀名区别keil4工程keil5工程keil5工程比keil4工程多了个xkeil5打开keil4文件1.界面会弹窗Migrate to Device Pack 迁移设备包Install Legacy Support 安装遗留支持2.程序编译成功, 但是"Options" -> "device"里芯片选择不了解决办法下载安装遗留支持包官网遗留支持包下载地址官网的下载速度太慢了, 即便科学上网下载, 也经常连接断开, 哭.原创 2020-08-17 12:26:51 · 5139 阅读 · 0 评论 -
Symbol aDST_Buffer multiply defined (by bsp_dma_mtm.o and main.o) 问题解决
情况说明在学习STM32的DMA时, 编译链接时出现了两个错误Symbol aDST_Buffer multiply defined (by bsp_dma_mtm.o and main.o)Symbol aSRC_Const_Buffer multiply defined (by bsp_dma_mtm.o and main.o)原因分析原因是我把两个数组放在了<.h>定义, 多个文件包含此<.h>则造成了重复定义(multiply defined)<.原创 2020-07-30 16:29:35 · 1490 阅读 · 1 评论 -
STM32 USART 寄存器缩写英文解释
介绍USART: Universal Synchronous/Asynchronous Receiver/Transmitter 通用同步/异步串行接收/发送器USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。寄存器位全称 ...原创 2020-07-25 17:22:04 · 854 阅读 · 0 评论 -
STM32F10X时钟树通俗解析
时钟STM32为了实现低功耗, 外设的时钟默认关闭, 需要使用外设时, 编程设置时钟信号才能正常工作.Tips: EXTI的时钟默认打开缩写RCC: Reset and Clock Control 复位和时钟控制HSE: High Speed Exernal clock signal 高速外部时钟信号HSI: High Speed Internal clock signal 高速内部时钟信号LSE: Low Speed External clock signal 低速外部时钟信号LSI:原创 2020-07-25 10:51:50 · 516 阅读 · 0 评论