STM32
文章平均质量分 57
嵌入式开发
做梦咸鱼
努力的意义在于当运气来临时,自己有足够的底气和能力去接住她
展开
-
IIC通信
在多主的通信系统中。总线上有多个节点,它们都有自己的寻址地址,可以作为从节点被别的节点访问,同时它们都可以作为主节点向其他的节点发送控制字节和传 送数据。但是...转载 2020-02-22 10:10:48 · 234 阅读 · 0 评论 -
串口通信那些事
今天咱们来聊聊51单片机的串口通信,通信是建立在多个对象的基础之上.通信方式通信的方式有很多种,比如单工、半双工、全双工、串行通信、并行通信、异步通信、同步通信等等.可能听到这么多专有名词觉得头大,其实很简单,具体举几个例子你就能明白了:单工:一端接收,一端发送.比如电视,广播;半双工:A可以发送信息到B,B也可以发送到A,但是不能同时进行,比如对讲机,每次结束都会加上一句over;全...原创 2020-03-01 16:47:02 · 576 阅读 · 0 评论 -
基于STM32的频率计Proteus仿真教程
本教程是基于STM32的嵌入式仿真大作业。使用 Proteus 仿真32单片机,实现了可以测量正弦波、方波、正弦波和锯齿波等波形频率的 频率计,测量误差在1%以内目录一、电路图设计二、代码设计三、测试结果四、总结一、电路图设计前端处理电路由LM324运算放大器组成迟滞比较器和电压跟随器,迟滞特性一定程度上解决了噪声扰动的问题,且可将任意固定频率的信号转化为脉冲,便于单片机的后续处理,而电压跟随器可增强其带载能力。单片机最小系统如下图所示,也可删除右侧电路,在Proteus中不受影响二.原创 2021-06-28 21:40:41 · 9997 阅读 · 16 评论 -
单片机串口波特率和上位机波特率相同为何依旧乱码
将单片机串口设置为115200后,打开串口助手,也设置为115200,发现依旧乱码。将串口助手波特率设置为38400后,发现正常打印。思索一番之后,发现CubeMX生成代码时,外部晶振默认为25MHz。而板载晶振为8MHz。讲HSE的外部晶振改为8MHz后,主机与从机在相同的波特率下可以正常通信。...原创 2021-03-04 00:37:41 · 1863 阅读 · 2 评论 -
源文件没有对应的头文件,其中函数是否可以被调用
在移植ThreadX操作系统的时候,发现HAL库时间基准文件stm32h7xx_hal_timebase_tim.c并没有对应的头文件,其中定义的HAL_Delay函数如何在其他文件中调用。通过Go To Reference发现,此stm32h7xx_hal_timebase_tim.c文件里面定义的函数,声明在其他头文件中,且另外一个源文件有该函数的弱定义。例如:HAL_Delay函数在stm32h7xx_hal_timebase_tim.c文件中有定义/***********************原创 2021-02-19 17:31:07 · 870 阅读 · 0 评论 -
ARM compiler5编译速度太慢如何解决
使用AC5编译HAL库代码过慢,电脑一度处于卡死状态;而使用AC6编译HAL库则很快。原因在于打开了browse information。如图所示使用AC6编译,打开Browse information并无影响,因为它编译的时候不管Browser information,而是后面慢慢刷新的。但AC5会有影响,需要等待底栏进度条完成。若选择AC5编译后时间过长,将Browse information去掉即可。...原创 2021-02-19 00:35:07 · 1127 阅读 · 1 评论 -
__HAL_TIM_SET_CAPTUREPOLARITY的巨坑
本人在写输入捕获实验的时候使用HAL库中的函数__HAL_TIM_SET_CAPTUREPOLARITY试图切换捕获极性,keil一直报错error: expected ‘:’ error: expected expression。原以为__HAL_TIM_SET_CAPTUREPOLARITY没有函数实体,但是又发现在stm32f1xx_hal_tim.h中这是个宏定义。于是乎发现TIM_RE...原创 2020-03-11 21:23:30 · 4811 阅读 · 8 评论 -
HAL_UART_IRQHandler(UART_HandleTypeDef *huart)里面的中断接收函数
前言看了很长时间串口中断的HAL库,最容易混淆的就是函数的名称,主要集中在UART_Receive_IT、HAL_UART_Receive、HAL_UART_Receive_IT。是不是有点傻傻分不清楚,是的,我也是这三个函数看了很长时间,接下来分析一下他们各自的含义。UART_Receive_IT函数代码如下:static HAL_StatusTypeDef UART_Receive_I...原创 2020-03-01 00:15:40 · 22180 阅读 · 6 评论 -
为何HAL库的工程“进入不了”外部中断?
今天遇到一个惨痛的教训。用CubeMX生成按键的外部中断工程,Nucleo的板子上PA5连接LED,PC13连接按键,并且外接上拉电阻。如图于是在CubeMX配置PA5引脚和PC13引脚,一个作为推挽输出,一个作为外部中断,因为按键是上拉的,内部引脚配置为上拉输入或者无上下拉均可,这里我采用无上下拉配置完GPIO,就去配置中断优先级了,这里我选择分组为2,两个优先级均为0,记住中断使能...原创 2020-02-28 20:33:45 · 3393 阅读 · 2 评论 -
no target connected 和 unknown target connected
今天测试HAL库的外部中断的时候发现程序出了一点小bug,就想下载之前的固件库程序对比一下。可是当下载之前完整的程序时弹出no target connected。如图一直很奇怪魔法棒的配置没有问题,也在设备管理器上看到了ST-Link已连接。程序都是之前的程序,没有任何问题。但是Debug的SWDIO里面一直显示No target connected。想了一会儿应该是之前下载了HAL库的程序...原创 2020-02-28 15:36:13 · 6596 阅读 · 5 评论 -
HAL库的GPIO八种工作模式
众所周知,STM32的GPIO的工作模式有八种,但是打开HAL库发现,有12中可以供自己设置。先不要懵,下面解释一下这12种工作模式的区别。实际上这12种是包含在通用的8种工作模式之中的,只是细分了而已!1、浮空输入模式#define GPIO_MODE_INPUT 0x00000000U / !<输入浮动模式 /当GPIO采用浮空输入模式时,STM32的引脚状态是不确定的,此时ST...原创 2020-02-27 12:01:13 · 5819 阅读 · 5 评论