STM32开发
文章平均质量分 61
stm32单片机
瑟寒凌风
这个作者很懒,什么都没留下…
展开
-
Cortex-M Fault
函数说明* 执行未定义的指令时触发 UsageFault 或 HardFault。* 附加信息* 在无效地址执行时触发 UsageFault。* 硬故障的相关寄存器:* FORCED = 1 - UsageFault 升级为 HardFault* UNDEFINSTR = 1 - 执行了未定义的指令*/// 0xDEAD: UDF # (永久未定义)int r;原创 2024-06-25 17:24:43 · 682 阅读 · 0 评论 -
STM32远程升级设计
STM32 的内部闪存地址起始于0x08000000。一般情况下,程序从此地址开始写入。由于STM32内部是通过一张“中断向量表”来响应中断,程序启动后,将首先从“中断向量表”取出复位中断向量执行复位中断程序完成启动,而这张“中断向量表”的起始地址是0x08000004。中断代码响应过程简单表述如下:1、当中断来临,STM32 的内部硬件机制亦会自动将PC 指针定到“中断向量表”处,并根据中断源取出对应的中断向量执行中断服务程序;2、STM32 在复位后,先从0X08000004 地址取.原创 2020-07-16 17:21:11 · 2479 阅读 · 0 评论 -
stm32模拟SPI协议
代码使用HAL库实现。话不多说,直接看代码//GPIO初始化void MX_IO_Init(void){ //本例中引脚端口是GPIOB,使能时钟为__HAL_RCC_GPIOB_CLK_ENABLE(); //如果移植,请注意此处的更改 GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOB_CLK_ENABLE(); /*Configure GPIO pins : P原创 2020-07-10 00:15:52 · 1779 阅读 · 2 评论 -
stm32的低功耗模式
本文以smt32L4R5ZIT6单片机为例,编写代码。本文只讲代码,不说废话。单片机进入低功耗前,都应该关闭中断。同时在低功耗前加上如下代码功耗更低 __HAL_RCC_PWR_CLK_ENABLE();//使能电源时钟 HAL_PWR_EnableBkUpAccess();//使能LSE/RTC控制的备份域 LSE_OFF_Config();//关闭LSE时钟,确保RTC关闭 HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAG原创 2020-05-30 02:27:04 · 3828 阅读 · 4 评论 -
stm32模拟IIC操作
话不多说,直接上代码,不懂的看注解//本程序使用的IIC器件是一个三轴加速度,型号MMA845x#define IIC_WRITE 0x1C#define IIC_READ 0x1C#define clk_hight (HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET)) //本程序IIC的时钟线接在PB6,置高#define clk_low (HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, G原创 2020-05-23 00:25:27 · 1626 阅读 · 1 评论 -
stm32的内部flash读写操作(含结构体的保存)
不同的stm32单片机的flash大小不同,这个需要查阅芯片手册或者查看STM32CubeMX软件。stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实际的flash大小,要操作flash时注意不要超出此范围。Flash中的内容一般用来存储代码和一些定义为const的数据,和一些用户自定义的保存数据,它断电不丢失。不同型号的单片机对flash的操作方式略有不同。下面我以自己用到的STML4R9VIT6和STM32L431RCT6为例贴上代码。ST原创 2020-05-20 01:22:22 · 9632 阅读 · 0 评论 -
KEIL / MDK生成BIN文件
使用相对路径生成,不需要任何修改$K\ARM\ARMCC\bin\fromelf.exe --bin --output=@L.bin !L编译后,Build Out框可以看到:After Build - User command #1: D:\Program Files\MDK516\ARM\ARMCC\bin\fromelf.exe --bin --output=test1....原创 2019-04-04 20:48:58 · 261 阅读 · 0 评论 -
STM32中使用HAL库重定向printf()函数
函数添加头文件#include "stdio.h"添加函数// 重定向函数1int fputc(int ch,FILE *f){ uint8_t temp[1]={ch}; HAL_UART_Transmit(&UartHandle,temp,1,2); //UartHandle是串口的句柄}//重定向函数2PUTCHAR_PROT...原创 2018-05-20 16:15:49 · 23540 阅读 · 4 评论