![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
stm32学习
baihengpei
华中科技大学电子信息工程2017年应届毕业生
展开
-
stm32通过485接串口做IAP
在做一个工程测量的项目,由于探头要下放到100米深,因此采用了走485差分信号的方式来提高传输距离和增强抗干扰能力,为了防止出问题时一遍一遍的拆开设备,所以决定通过预留出来的485的A,B线来进行固件的在线升级。首先简要介绍一下IAP,IAP即In Application Programming(在应用中编程),一般stm32的程序下载的时候都是下载到flash中地址0x800 0000的地方原创 2016-03-14 21:53:30 · 7255 阅读 · 4 评论 -
STM32 大小端模式 与 堆栈及其增长方向分析
在开源电子中看到一篇文章讲的是栈增长和大端/小端问题。学C语言的时候,我们知道堆栈的区别:1)栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等,其操作方式类似于数据结构中的栈。(2)堆区(heap):一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。分配方式类似于数据结构中的链表。(3)全局区(静态区)(static):全转载 2016-03-16 21:20:54 · 5538 阅读 · 0 评论 -
linux下编写I2C驱动与stm32通信(一)
最近项目中需要用到Hi3518e作为主芯片,上面搭载嵌入式linux系统。由于可行性验证阶段,没有做芯片级,而是先从系统级做起,用了一块已经移植好linux系统,带有网络文件系统服务的板子,该板子是专用于rtsp视频传输的,预留的引脚是在太少,只有两个用于IRCUT的引脚,而我们不仅仅需要rtsp服务,还需要在rtsp视频流中加入九轴陀螺仪的数据一起提供给上位机解析,只得再加一块stm32板子,用原创 2016-03-13 10:25:59 · 3126 阅读 · 1 评论 -
linux下编写I2C驱动与stm32通信(二)
接上一篇,linux下GPIO模拟I2C驱动完成后,就是stm32的i2c配置了,由于hi3518e作为i2c的主设备,stm32则作为从设备,由于GPIO模拟i2c的从时序比模拟主时序要麻烦很多,所以采用stm32的硬件I2C。(stm32官网i2c例程主模式会莫名的卡死,从模式比较好用) 下载官网例程,将之设置为从模式,使用i2c2,将SCL,SDA,GND与hi3518e板子上G原创 2016-03-15 21:49:03 · 2414 阅读 · 0 评论 -
stm32启动文件解析
1;先在RAM中分配系统使用的栈,RAM的起始地址为0x2000_0000 2;然后在RAM中分配变量使用的堆 3;然后在CODE区(flash)分配中断向量表,flash的起始地址为0x0800_0000,该中断向量表就从这个起始地址开始分配 4;分配完成后,再定义和实现相应的中断函数, 5;所有的中断函数全部带有[weak]特性,即弱定义,如果编译器转载 2016-03-13 09:36:15 · 456 阅读 · 0 评论 -
stm32 SWD下载
平时一直用jlink下载,十分的方便,但是jtag有20针特别占用PCB的位置,于是转向使用swd方式,这种方式只需要接四根线即可,如下图:jtag的引脚定义如下图:硬件连接上,只需要将jtag的7脚和9脚连接到板子上,再加上一个电源脚和GND即可。软件上在keil上进行相应的设置,如下图:原创 2016-03-13 10:05:04 · 809 阅读 · 0 评论