STM32系列
IT_B_O_Y
不甘平凡混一生
展开
-
调试小细节 之 ADC采样值出错
adc驱动初始化记录原创 2020-06-07 22:58:04 · 7469 阅读 · 0 评论 -
调试小细节之数据类型占用字节
最近手里有一款温湿度传感器AM2105,通信接口为单总线通信,介绍如下:当我按照时序正确的读取四十位数据后,按照高位左移八位或上低八位得出实际数据,但是结果却是错误的,而且多次查找都没有找到问题点;程序如下:/*******¶Á40λÊý¾Ý********/void read_hum_temp(void){ uint8_t a; AM2301_Start(); ...原创 2019-12-09 22:56:20 · 261 阅读 · 1 评论 -
关于stm32单片机准双向IO口配置
我们在开始学习51内核的单片机的时候就知道,p0口的引脚都是双向IO口,P1,P2,P3的IO口需要双向使用时需要外接上拉电阻,故称为准双向IO口,但是我们在学习STM32单片机的时候知道32的IO口可以配置为8种状态,但是却没有双向IO这一选项,但是我们也可以通过一些操作将stm32的引脚配置为准双向IO口;配置stm32的IO口为准双向IO口的方法就是软件上:将需要配置我的准双向IO口的...原创 2019-10-31 23:24:25 · 4963 阅读 · 0 评论 -
STM32 外部中断
STM32 的每个 IO 都可以作为外部中断的中断输入口,STM32F103 的中断控制器支持 19 个外部中断事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。STM32F103 的19 个外部中断为:线 0~15:对应外部 IO 口的输入中断。线 16:连接到 PVD 输出。线 17:连接到 RTC 闹钟事件。线 18:连接到 USB 唤醒事件。STM32 供...原创 2019-07-24 11:54:01 · 570 阅读 · 0 评论 -
CAN入门教程~CAN总线的基础知识
1.CAN简介:CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议。CAN 通过 ISO11898 及 ISO11519 进行了标准化,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。CAN 控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平(0)和隐性电平(1...原创 2019-07-24 18:10:43 · 7241 阅读 · 0 评论 -
keil新建工程图文详细步骤—方法1
keil是我们在win环境下进行下位机开发最常用的IDE之一,本文将使用keil5并基于标准库v3.5介绍如何一个新建工程;开发环境:Windows10,版本5.27项目名称:demo首先新建如下图的几个文件夹打开keil5点击下图箭头所指找到刚刚新建的文件夹目录,并打开MDK文件夹输入项目名称demo,并点击保存选中所使用的硬件芯片型号,然后点击OK;本...原创 2019-08-05 14:51:09 · 8521 阅读 · 0 评论 -
keil报错error: declaration may not appear after executable statement in block
这是一个常见问题,主要原因是:C语言的C99前的版本变量声明不允许出现在语句之后,这种在语句之后声明变量的方式,c++允许,现在的很多c编译器也允许。最早的c是不许这么写的,要求所有的局部变量必须在函数开头声明。解决办法:...原创 2019-08-08 10:03:13 · 1079 阅读 · 0 评论 -
编码器介绍和应用
编码器介绍1. 什么是编码器?简而言之,编码器是一种提供反馈的传感设备。编码器将运动转换为电信号,该信号可由运动控制系统中的某种类型的控制装置读取,例如计数器或PLC。 编码器发送反馈信号,可用于确定位置,计数,速度或方向。控制设备可以使用该信息来发送特定功能的命令2. 编码器如何工作?编码器使用不同类型的技术来创建信号,包括:机械,磁性,电阻和光学 - 光学是最常见的。在光学传感中,编码...原创 2019-08-09 15:29:14 · 7506 阅读 · 1 评论 -
线程和进程
进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;或者更专业化来说:进程是指程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。进程——资源分配的最小单位,线程——程序执行的最小单位。线程进程的区别体现在4个...转载 2019-08-14 11:32:54 · 176 阅读 · 0 评论 -
STM32之模拟I2C通信驱动代码
/******************************************************************************Name: i2c.cDescription: I2C communication functionProject: ****Auther: ZWMCU: STM32F103RET6...原创 2019-07-15 15:06:10 · 697 阅读 · 0 评论 -
关于MAX3232ESE+T的过热问题
因公司硬件工程师离职,无新人补缺,记最近遇到一个硬件问题,关于RS232接口无法通信,经过检查发现USART转232的芯片MAX232发热严重,经测量达到了60多度,明显不正常,硬件电路如下经过查找该芯片的数据手册,发现这个电路没有问题,完全符合典型应用电路,然后马上换芯片,再次上电不到五秒马上又开始发热发烫,其实这款芯片有的时候是可以通信的,但是时好时坏也不确定是什么原因,于是怀疑电容可能...原创 2019-07-05 11:12:00 · 4431 阅读 · 0 评论 -
关于单片机串口传输接收端出现0X80的情况
今天用stm32串口转232和工控机通信时,通过笔记本的串口助手与单片机和工控机通信时都很正常,收发都没有问题;但是一用单片机和工控机直接通信就出现通信故障,经过排查发现单片机老是接收到错误数据0X80;当时的波特率是115200,后来查找资料说这是MAX3232ESE-T芯片的极限通信速率了,果断把波特率降低为19200或者其他低于115200的波特率,错误数据就不在出现了;这个问题的很难发...原创 2019-06-20 13:41:40 · 4830 阅读 · 0 评论 -
STM32 BOOT模式配置和功能
根据stm32中文参考手册介绍如下BOOT[1:0]X :0 主闪存存储器 ,平时我们通过 SWD或者JTAG接口下载到单片机里的程序就是下载到了这里;0 :1 系统存储器, 此区域为厂商出厂的时候内置了不可擦出的一段boot loader,可以在此模式下通过 串口把程序下载到flash中去,由于一些不恰当操作导致flash被锁死的情况下也可以通...原创 2019-06-26 10:49:27 · 767 阅读 · 0 评论 -
关于_map文件的全面解析
引用链接:https://www.strongerhuang.com/Keil/Keil系列教程12_map文件全面解析.html这篇文章介绍的比较全面,摘录部分我认为比较重要的如下:什么是map文件?简单的说:map文件是通过编译器编译之后,集程序、数据及IO空间的一种映射文件。很多技术牛逼的工程师在遇到内存越界,或溢出的情况,首先想到的就是分析map文件。通过map文件可以知道函数大小...转载 2019-06-26 11:25:13 · 22450 阅读 · 0 评论 -
JScope_V510d 可以图形化显示的调试助手
在嵌入式日常开发过程中经常会用到各种各样的调试助手,最常用的就是串口助手,还有RTT或者在线仿真等,但是这些工具都需要加代码或者达不到我们想要的效果,最近学到了一个无需添加任何代码,无需仿真,只要有J-LINK连接到正常运行的设备上就可以显示变量图形的调试助手:JScope安装就不介绍了,一路点到头就行了;介绍一下使用方法双击打开,如上图所示,第一次使用选择New Project,进入下...原创 2019-07-02 17:13:19 · 615 阅读 · 0 评论 -
关于串口初始化失败,寄存器全为0的两种错误
串口是我们开发过程中最常用的通信接口之一,今天在开发的时候发现串口1和2都可以正常的初始化,唯独串口3无论怎么初始化寄存器都都全为0,在网上查找的时候发现一个兄弟是搞错芯片了,他的芯片没有串口3所以无法初始化链接在此但是我用的芯片是STM32F103RE系列是有4个串口的!因为我的串口3是串口1移植过来的,串口2是别人写的驱动,后来经过仔细查看比对,感觉肯定是时钟没有初始化,经过查看参考手册果然...原创 2019-06-24 09:30:33 · 3515 阅读 · 0 评论 -
stm32两种常见的串口接收方式
最近遇到一直增加功能和调试中不知不觉把带串口接收DMA的串口资源给用完了,换成不带DMA的串口接收数据有点不一样的地方,记录一下,还有以后的开发中不能老是买通信都是串口的模块,模块多的时候,不利于扩展串口1+DMA接收数据的基本配置下面的这段代码是串口+DMA接收数据的配置,配置完后在中断里的**receive_process()**函数添加数据处理即可,这种方式不需要CPU参与,可以节省C...原创 2019-07-08 17:02:00 · 2383 阅读 · 0 评论 -
STM32 时钟源和RCC 配置
STM32一共有5个时钟源,分别是HSI HSE LSI LSE PLL①HSI 是高速内部时钟, RC 振荡器,频率为 8MHz ;②HSE 是高速外部时钟,可接石英 / 陶瓷谐振器,或者接外部时钟源,频率范围是 4MHz – 16MHz(一般接8M) ;③LSI 是低速内部时钟, RC 振荡器,频率为 40KHz ;④LSE 是低速外部时钟,接频率为 32.768KHz 的石英...原创 2019-06-27 17:49:27 · 806 阅读 · 0 评论 -
IIC通信协议原理总结
一.主要特征1.只要求两条总线线路 一条串行数据线 (SDA) 一条串行时钟线 (SCL)2.每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机 /从机关系软件设定地址 主机可以作为主机发送器或主机接收器3.它是一个真正的多主机总线 如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏4.串行的 8 位双向数据传输位速率在标准模式下可达 100kbit/...原创 2019-07-09 14:50:42 · 1339 阅读 · 0 评论 -
关于keil常见问题解决方法记录error: #268: declaration may not appear after executable statement in block
error: #268: declaration may not appear after executable statement in block因为keil 默认编译标准是C89,解决方法:原创 2019-06-03 09:22:50 · 15927 阅读 · 16 评论