嵌入式STM32应用
文章平均质量分 67
dayou1024
这个作者很懒,什么都没留下…
展开
-
JLINK掉固件后重刷
JLINK掉固件后重刷原创 2022-08-12 20:57:41 · 1246 阅读 · 0 评论 -
六轴加速陀螺仪MPU6500/MPU6050使用及DMP库移植,含记步器功能
本篇博客为博主学习使用MPU6500完成后的学习记录,故在这只做主要讲解,如有博友看完后仍不知如何使用,可在下方留言问我,或发邮件问我(dayou1024@qq.com),因邮件有QQ和微信提示,故我能更快看到.1、MPU6500/MPU6050是一个6轴的传感器,及加速度和角速度各有 x,y,z轴相关数据手册可在网上找到,如立创商城2、我这里使用I2C总线驱动MPU6500,要想后面的程序能调通,首先要确保I2C连续读写都正确,能读写MPU6500一两个寄存器正确并不能说明你的I2C一定.原创 2020-07-06 22:05:58 · 30820 阅读 · 6 评论 -
I2C连续读写E2PROM例程
本例程主要作为作者的学习记录,意义在于E2PROM使用页缓冲器连续读写,基于STM32,作用51也很好移植,只需改动端口定义头文件#ifndef AT24CXX_H#define AT24CXX_H#include "stm32f10x.h"#include "sys.h"#include "delay.h"#include "stdio.h"#define E2PROM_I2C_SDA_RE PBin(11) #define E2PROM_I2C_SDA_WR PBout.原创 2020-06-15 19:54:05 · 2479 阅读 · 0 评论 -
I2C协议代码的实现关键
I2C总线我已经用很久了,也用了很多次,但每到下一次使用时,都会或多或少的发现一些小问题,比如读写单个字节时没有问题,在连续读写大量数据时却出现读写不正确的现象,下面来总结一下模拟I2C驱动代码的实现关键1、起始信号start:这个一般不会出错,在SCL=1时,让SDA出现一个下降沿,即SDA=1 --->SDA=0;2、停止信号stop:这个一般也不会出错,在SCL=1时,让SDA出现一个上升沿,即SDA=0--->SDA=1;3、主机(如单片机)检测应答信号:I2C要求...原创 2020-06-15 11:04:22 · 1120 阅读 · 0 评论 -
c语言中__align()关键字的作用与内存对齐的原理
32位cpu为例,cpu在访问内存的时候是以一个字进行传输的(计算机中,一个机器字长就是cpu位数,32位cpu,四个字节为一个字),那么也就是说cpu读取数据每次都是四个字节四个字节的读取,计算机最初是从地址0开始寻址,那么寻址也就是4个字节4个字节的地址依次往后找。如果我们只需要读取一个字节的char型变量,那么计算机也是读取它所在的4个字节出来,然后提取出那个目标字节就行了,因为32位计算机...转载 2020-04-09 11:53:47 · 1267 阅读 · 0 评论 -
ARM Cortex-M3的startup.s文件详解
ARM Cortex-M3的startup.s文件详解原文地址链接以LM3S9B90为例。Startup.s文件是系统的启动文件,主要包括堆和栈的初始化配置、中断向量表的配置以及将程序引导到main( )函数等。Startup.s主要完成三个工作:栈和堆的初始化、定位中断向量表、调用Reset Handler。a)堆和栈的初始化Startup.s中的代码如下图所示: 1.程序分别对堆和栈进行了大...转载 2018-06-01 15:05:15 · 1970 阅读 · 0 评论