- 博客(50)
- 资源 (16)
- 收藏
- 关注
原创 STM32程序串口DMA初始化时进入hardfault_handler()
初始化函数里调用了HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)这个函数。串口使用DMA方式时,MSP函数对DMA做了初始化,中断方式的MSP初始化自然不会初始化DMA,所以一调用前面那个函数就hardfault_handler()复位了!这HAL库挺坑人的,一个串口初始化还分两部分,经常忽略还有一个MSP初始化函数要修改。原来自己的工程里串口用的中断方式,
2024-08-21 10:49:25 282
原创 STM32程序进入hardfault_handler()
后来才发现,这几句代码里使用了一个变量,这个变量是在其他文件中定义的,所以在_it.c文件里是通过extern关键字引入的。引入的时候,后面的数据类型是uint16_t。节后回来测试代码,发现程序上电后很快就进入hardfault_handler()中断。在程序的_it.c文件里有几句代码,如果注释掉不执行,就不会进入hardfault_handler()中断。这样一来,不就访问越界了吗!所以进入.hardfault_handler()。要是keil软件能提示下这种错误就好了!
2024-05-07 17:43:31 420
原创 使用keil uv5打开工程显示Device not include in Legacy Device Database怎么解决?
使用keil uv5打开工程显示Device not include in Legacy Device Database。找不到器件
2024-04-20 17:09:41 580 1
原创 为什么单片机从STM32F030C8T6改到STM32F030CCT6后无法运行
为什么单片机从STM32F030C8T6改到STM32F030CCT6后无法运行?
2022-11-20 15:30:52 1186 1
原创 STM32(GD32)串口通信ORE(overrun error)导致死机
STM32串口通信ORE(overrun error)导致死机现象就是:我要接收到16个字节到数据后就开始处理数据,但是主机发过来的指令超过了16个字节,就导致我这里死机了,其实我这里不应该死机的,因为波特率才9600,一个字节的时间来处理中断代码完全够用。怎么掉进坑的呢:因为我在接收中断处理函数里加了发送字符的函数putchar,也就是当我接收到16个字节时,我就在中断函数里给主机回复“ok”这两个字符。这就完蛋了,如果主机发了16个字节不发了,那没问题,如果发了16个字节还在发,就overrun
2020-12-11 11:58:21 6572
原创 STM32 GD32 影响ZI-DATA大小的选项use MicroLib
start.s文件定义了堆栈的大小,会影响ZI-DATA如果使用了printf函数,那么是否勾选use ZI-DATA选项对ZI-DATA影响也很大。“microlib是缺省C库的备选库。它用于必须在极少量内存环境下运行的深层嵌入式应用程序。这些应用程序不在操作系统中运行。microlib不会尝试成为符合标准的ISOC库。microlib进行了高度优化以使代码变得很小。它的功能比缺省C库少,并且根本不具备某些ISOC特性。某些库函数的运行速度也比较慢,例如,mem...
2020-11-07 15:37:41 2559
原创 使用printf,对fputc做了重定向,但是却不能使用printf发送数据。看一下是否勾选了编译器里的使用microLib选项
使用printf,对fputc做了重定向,但是却不能使用printf发送数据。看一下是否勾选了编译器里的使用microLib选项如果没选上,就不行
2020-10-13 11:42:15 944 2
原创 非屏蔽电感和电感上电流不稳定惹的祸
做的一个板子,首先用一个78L33芯片把输入的电压降低到3.3V,然后jin'紧接着一个3.3V到5V的升压芯片BL8530,电路上有一个电感,非屏蔽的。这个板子经常发现有发有烧芯片的现象。很长一段时间不知道啥原因导致的。直到有一天一个客户做的ban'板子寄到我这里测试,发现他的78L33用万用表测输出的是3V。波纹很小。但是会发现会规律性的zai在电源sh上出现干扰,而且和这个电感经过的电流频率相关。这可能就是板子jin经常烧芯片的原因。可能是电感的辐射干扰,也可能是电感电流的周期性大范围变化ch
2020-07-28 11:53:25 663
原创 电源电路上两个电感互感了!!!
硬件设计真的不是简单的事啊,需要有经验才行,即使是看似简单的东西,像自己这样的小白也mi'a免不了出错。两个电感,一个升压电路用的,一个降压电路用的,非屏蔽电感,结果做完了!测试发现升压出来的电压不对了!恍然大悟,两个电感挨的太近了,互感了!!!板子就这样报废了啊!!!距离拉开1厘米,就没有这问题了,哎!!!...
2020-07-21 19:14:41 2025
原创 STM32F0单片机添加Modbus支持步骤
1、把modbus库文件夹和port文件夹复制到工程目录下2、把两个文件夹添加到工程中3、把包含路径添加进来4、主程序中包含modbus相关头文件//包含modbus相关文件#include "mb.h"#include "mbport.h"#include "mbutils.h"5、把timer.c和timer.h文件复制到工程中,添加进工程src6、主...
2020-04-14 14:16:51 1748 1
原创 不明原因的程序问题STM32 KEIL
索引变量像i,j,k这些,经常会在程序的多个部分重复使用。会不会用的次数太多了,编译器就编译乱掉呢?最近写一个程序,检查程序没有发现问题,但是在某一段程序中使用k,就莫名其妙的不听使唤,k++不起作用,总是等于一个固定值6,感觉出现了编译器编译问题,最后在这段程序里把k换掉,用一个新的变量替代,就没有问题了。这是怎么回事呢?其他地方使用k都是在for循环中,而这一段程序使用k不是在for循环中...
2020-04-01 10:50:56 257
原创 STM32 ST-LINK Utility之坑
如果hex文件的路径太深,用STM32 ST-LINK Utility是打不开的,他也不给你啥提示,反正就是打不开。打不开就打不开吧,也没事。可是如果再碰巧遇到像我下面这种情况就悲惨了。把一个原来的程序项目复制一份,更新下程序,肯定要改下文件夹的名字,结果老的项目文件夹路径不超长,而新项目文件夹的路径超长了,然后我在ST-Link Utility里刚好打开过一个老的项目文件里的hex文件。...
2020-03-16 15:37:23 2087 2
原创 STM32H743的SD卡读写测试(SDIO)
水平不行,光入坑了。每次爬出来都精疲力竭。把野火的SD卡测试程序,移植到字节的xi项目中,说啥也不行,直接用野火的程序就OK,移植过来就不行。除了移植程序相关的.h.c文件外,发现一个很坑的文件,就是那个hal_conf文件。这里除了定义包含哪些库文件,还有其他的一些定义,已经不止一次被这个文件坑死。这次移植sd卡程序,我的项目程序的conf文件,多了一行定义#define US...
2020-01-01 21:50:22 3395 4
原创 LAN8742替换LAN8720
LAN8742可以替换LAN8720吗?肯定可以的,LAN8742就是8720的升级版两者引脚是pin to pin兼容的8742比8720多了一个wol网络唤醒功能,8742和电脑直连时可以使用直连网线,芯片自己交叉tx和rx信号线。那么用8742的驱动可以驱动8720吗?可以,但是要注意下芯片的电路图。如果两个芯片设计的电路图不同,就有些要注意的地方,比如下面是野火开发板用...
2019-12-25 22:20:13 15862
原创 stm32程序在不同的stm32开发板上移植时注意事项
1、修改SystemClock_Config函数,不同的开发板使用的时钟源可能是不一样的,所以要修改,同时要修改stm32h7xx_hal_conf.h文件中HSE的值#if !defined (HSE_VALUE)#define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in H...
2019-12-25 21:37:06 1825
原创 STM32H743定时器输出比较功能前两个周期脉宽不准
我要通过定时器比较输出功能发指定个数的脉冲。但是发现随机出现一帧的第一个脉冲宽度不对的现象,比实际需要的宽度要宽。不知道哪里的原因,解决办法就是启动定时后的前2个脉冲不用,从后面的开始用。...
2019-12-10 11:57:02 572 1
原创 调试lwip,把UDP收到的数据写到单片机内部FLASH,程序进入hardfault_handler
用的STM32H7单片机,调试LWIP把指针直接指向pbuf的payload,然后传递给FLASH编程函数,就会进入hardfault_handler然后参考了下面这个文章https://blog.csdn.net/tiantangmoke/article/details/89065065然后就把payload的数据先复制到一个数组中,然后在把数组地址传递给FLASH编程函数,就不...
2019-12-09 00:04:59 582
原创 错误“hwaddr_len must be the same as ETH_HWADDR_LEN”的可能原因
Assertion "netif->hwaddr_len must be the same as ETH_HWADDR_LEN for etharp!" failed at line 1130 in ../../../../../../Middlewares/Third_Party/LwIP/src/core/ipv4/etharp.cAssertion "netif->hwaddr...
2019-12-08 23:02:43 818
原创 STM32H743程序定义大数组
作为小白,原来觉得这里的配置不影响写程序,直到最近要定义一个200K的数组,才发现这里的配置是多么重要。选择IRAM1,编译就不通过,因为放不下,选IRAM2就能编译通过。...
2019-12-05 22:52:39 2836
原创 stm32以太网中断接收(LWIP)
在ETH的msp函数里使能中断 /* Enable the Ethernet global Interrupt */ HAL_NVIC_SetPriority(ETH_IRQn, 0x7, 0); HAL_NVIC_EnableIRQ(ETH_IRQn);但是还要在static void low_level_init(struct netif *netif),最终启动EHT...
2019-12-01 16:58:46 6443 2
原创 电脑蓝屏后,KEIL UV5打开蓝屏前编辑的程序闪退
电脑蓝屏后,KEIL UV5打开蓝屏前编辑的程序闪退开始以为是软件坏了,后来重装了软件还是闪退,原来是蓝屏前被编辑的那个工程出了问题。把工程里保存.o .d文件的文件夹里的日期最新的文件删了,再打开工程就好了。...
2019-12-01 15:23:47 856
原创 LWIP协议TFTP传输速度如何提高
看到网上有一些关于嫌tftp速度太慢的帖子,有的说只有几十KB的速度。最近也在研究lwip的tftp协议。用的stm32H7单片机,主频400MHz。刚开始是电脑通过无线连接路由,开发板通过网线连接路由。传输速度只有200KB。不能满足需求。然后把电脑通过网线直接连路由。速度提高到500KB/s,然后又把电脑直连开发板,但是速度没有提高。开始不知道原因出在哪里。怀疑是不是kai'开发板...
2019-11-30 22:08:03 4102 1
原创 lwip的tftpserver.c文件,自己注释了下
/****************************************************************//** * * @file tftp_server.c * * @author Logan Gunthorpe <logang@deltatee.com> * Dirk Ziegelmeier <dziegel@g...
2019-11-28 13:36:24 1185
原创 每次执行串口中断发送程序就跳到WAKEUP_PIN_IRQHandler
用官方的串口中断发送例程zhen正常,但是当我把官方的程序填到uart.h和uart.c文件中,然后添加到工程,一执行串口中断发送程序就跳到WAKEUP_PIN_IRQHandler。找了好久,原来是个低级的原因。官方程序的中断向量定义是在main.h文件中,在_it.c文件中包含le了main.h文件,所以在_it.c文件中能找到中断#define USARTx_IRQHandler ...
2019-11-24 23:05:39 1164
原创 把STM32H743I-EVAL开发板的LWIP工程移植到NUCLEO-H743ZI开发板
STM32H743I-EVAL开发板很贵,买不起。NUCLEO-H743ZI开发板便宜。但是NUCLEO-H743ZI开发板的LWIPli'c例程非常少。这两个开发板用的都是LAN8742A PHY芯片,只是硬件连接有些不同。STM32H743I-EVAL开发板提供的LWIP例程比较fe丰富。怎么把STM32H743I-EVAL开发板的程序移植到NUCLEO-H743ZI开发板呢?经过尝试,总...
2019-11-23 22:02:23 1796
原创 编译STM32工程找不到input file “deprecated_definitions.h”
工程里是有这个文件的,编译的时候就是找不到,哈哈,起始是文件路径太长了。把工程放到磁盘根目录下就可以了。deprecated_definitions.h
2019-11-18 22:53:50 367
转载 FT1248程序(FT232H,FT220X)
百度怎么也搜不到关于FTDI的FT1248协议的代码,FTDI的FT1248手册写的又很不明不白。有幸在国外网站找到下面这个代码,继承原作者的初衷,在国内分享下:FTDI: interfacing FT1248/FT220x over SPIPosted on June 7, 2013In my current project I want to interface theFT...
2019-11-09 00:01:47 1125
原创 STM32F0 定时器中断 小白掉进的坑(FreeModbus)Timeout
1)STM32F0有多个定时器,对应多个IRQn TIM1_BRK_UP_TRG_COM_IRQn = 13, /*!< TIM1 Break, Update, Trigger and Commutation Interrupt */ TIM1_CC_IRQn = 14, /*!< TIM1 Captur...
2019-09-25 15:55:23 3573
原创 STM32F030单片机SD卡FatFs文件系统测试程序(HAL库)
单片机:STM32F030C8T6 LQFP48micro SD卡:闪迪 16G晶振:外部晶振8M,倍频后系统时钟48MHz接口:使用SPI1(PB3-SCK,PB4-MISO,PB5-MOSI),CS连接PA5,PA6是Detect,实际测试时PA6连接到的GND,表示插入了SD卡用了两个LED,LED1连接PA0,LED3连接PA2,如果最好LED1点亮,并且SD卡中新建了STM32...
2019-07-25 22:39:48 1501 1
原创 STM32F0 HAL库软件模拟串口发送数据
试验STM32F0官方提供的例程的时候,希望看到程序中某些变量的值,但是程序中往往没有串口发送部分,自己加又非常麻烦。而点亮LED的程序基本上每个例程都有。所以用点亮LED引脚模拟串口发送数据就很方便,不用再去初始化串口IO,初始化串口等等。/** * @brief 软件模拟串口发送数据 * @param 48MHz时钟,9600波特率,8数据位,无校验 * @retva...
2019-07-18 09:30:06 1527
原创 system_stm32f0xx.c文件
system_stm32f0xx.c/** ****************************************************************************** * @file system_stm32f0xx.c * @author MCD Application Team * @brief CMSIS Cortex-M0...
2019-06-05 22:37:39 1466
原创 TTL电平串口通信可以连接多个从机吗?
方法1:组成环(ring)方法2:换成485接口方法3:把从机TX引脚设置成开漏输出,然后外接上拉电阻后直接并联试验过程:开始的时候从机TX是设置的推挽输出,主机连接一个从机时,可以收到从机回复的信息,但是并联两个从机后就收不到回复信息了,把从机TX引脚设置成开漏输出,用的STM32单片机内部可以设置上拉,可以收到从机回复的信息了,但是不知道最多可以并联多少个从机,没有试验。/...
2019-05-27 22:33:16 13142 1
原创 STM32F0 HAL库的串口中断调用顺序
首先在主函数里执行发送中断或者接收中断函数:HAL_UART_Receive_IT(&UartHandle, (uint8_t *)RxBuf, 1);HAL_UART_Transmit_IT(&UartHandle, (uint8_t*)TxBuf, 14); 这两个函数主要是设置UartHandle结构体变量当真正发生串口发送或接收中断时,首先执行的是...
2019-05-27 10:47:43 1614
原创 STM32F0 在软件程序中写读保护选项字节(Option Bytes)
单片机:STM32F030库:HAL库目标:在程序软件中修改读保护选项字节,这样程序下载进去之后就自动保护了,不用再在ST-LINK中修改选项字节了注意事项:写选项字节,除了解锁OB,还要解锁FLASH,开始只解锁OB,没解锁FLASH,一直调试不成功 static FLASH_OBProgramInitTypeDef OptionsBytesStruct; //...
2019-05-26 18:10:43 4204
转载 ZI-data是什么
转自:https://www.cnblogs.com/king-77024128/articles/3463107.htmlKEIL RVMDK编译后的信息Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116Code是代码占用的空间;RO-data是 Read Only 只读常量的大小,...
2019-05-25 11:03:49 14933 1
原创 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)注释
/** * @brief Receive an amount of data in interrupt mode.(中断方式接收指定数量的数据) * @param huart UART handle.(UART handle,这个handle数据结构包含了很多参数) * @param pData pointer to data buffer.(pData是接收缓存的指针) * @...
2019-05-03 17:09:25 5404
原创 STM32 HAL库怎么学
1、文件间关系2、各个函数间调用关系,调用条件。3、各个数据结构怎么用虽然库函数都有了,但是怎么用?什么时候用?按什么顺序用?
2019-05-03 16:22:42 1985
原创 core_cm0.h文件内容
第一部分:包含头文件 stdint.h。因为要用到这里定义的数据类型第二部分:定义__CM0_CMSIS_VERSION版本号第三部分:根据编译器不同,归一化asm汇编关键字,注意有三个__ASM,__INLINE,__STATIC_INLINE...
2019-04-28 22:39:03 2792
原创 stm32f030x8.h文件内容
第一部分:Configuration of the Cortex-M0 Processor and Core Peripherals第二部分:中断号列表。第三部分:包含其他头文件#include "core_cm0.h" /* Cortex-M0 processor and core peripherals */#include "system_stm32f0x...
2019-04-28 10:00:04 476
stm32f0_freemodbus补充文件
2020-04-14
SPI总线规范(EN)
2010-04-19
rs232的各种连接方式及通讯
2010-04-14
超级51开发板电路图
2009-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人