- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 flash_write写入数据错误
现象:flash写入后,掉电重启发现参数全部初始化了。调试发现闪存中的数据错乱。分析:flash_write中写入data = *(uint32_t *)(pdata + addr - start_addr);这句说明写入是4字节;而我写入的数据内容是uint8_t addr; uint16_t num;float32_t volt1_k1; float32_t volt1_b1; ……数据没有对齐造成的错位。解决方案:在addr后面加入一个字节的rsv保留位,使数据对齐。..
2020-07-10 15:21:57 1563
原创 如何解决#ifndef仍然重复定义?
因为#ifndef只能保证重复包含时,只包含一次。但在不同的C文件是分别进行编译的,所以另一个C语言里的#define对另一个C文件不起作用。解决方法:1)在头文件里只声明不定义2)把定义定义在C文件里或者是用最笨的方法,两个定义只留下一个需要的就可以了。...
2020-03-12 15:06:54 1681
原创 implicit declaration of function解决方法
产生implicit declaration of function的原因1 没有把函数所在的c文件生成.o目标文件。2 在函数所在的c文件中定义了,但是没有在与之相关联的.h文件中声明。3 其头文件都声明过了,所调用的函数的原型与所传的实参类型不匹配。一般最常出现的是第二种, function()函数在A.c文件中写了功能,但未在A.h文件中进行声明该函数。B在文件中使用该函数时,...
2020-03-10 15:30:52 34347
原创 闪存寄存器
1.闪存访问控制寄存(FLASH_ACR)地址偏移:0x00复位值:0x0000 0030各位描述:2.FPEC键寄存器(FLASH_KEYR)地址偏移:0x04复位值:xxxx xxxx3.闪存OPTKEY寄存器(FLASH_OPTKEYR)地址偏移:0x08复位值:xxxx xxxx4.闪存状态寄存器(FLASH_SR)地址偏移:0x0C复位值:0x000 0000...
2019-08-16 13:53:58 972
转载 STM32F0xx_TIM输入捕获(计算频率)配置详细过程
捕获原理看系统框图,今天使用分频的方式来采集波形,官方提供的例程是没有配置TimeBase参数,也没有分频,分频的好处在于不是非常实时的获取波形,这样有利于提供精度(可以说是计算平均值)。捕获外部8个脉冲,前后读取一下计数的值,这个值就是外部脉冲的差值,从而计算出频率。配置过程详情①RCC时钟注意:外设时钟不要随便添加,比如:RCC_APB1外设不要配置在RCC_APB2时钟里面【如...
2019-08-13 10:58:56 785
原创 FSMC例码
#include "stm32f10x.h" /* RCC时钟配置 */void RCC_config(){ ErrorStatus HSEStartUpStatus; /* RCC寄存器设置为默认配置 */ RCC_DeInit(); /* 打开外部高速时钟 */ RCC_HSEConfig(RCC_HSE_ON); /* 等待外部高速时钟稳定 */ HSEStartUp...
2019-08-06 11:25:03 481
原创 STM32+IAR 解决Error[Pe147]: declaration is incompatible with "__nounwind __interwork __softfp unsigned
Error[40]: Bad instruction F:\IAR Embedded Workbench\usart2\CORE\startup_stm32f10x_hd.s 37在core_cm3.h中找到如下行,注释掉“#include <intrinsics.h> ”转载链接:https://blog.csdn.net/dodwind/article/details/81...
2019-08-05 15:01:22 2658
原创 sys.c MSR_MSP文件修改
编译显示错误:Error[Pe040]: expected an identifier F:\IAR Embedded Workbench\usart\SYSTEM\sys\sys.c 82Error[Pe260]: explicit type is missing (“int” assumed) F:\IAR Embedded Workbench\usart\SYSTEM\sys\sys.c...
2019-08-05 15:01:08 4228 6
原创 IAR输出hex文件
options→output converter→勾中Generate additional output→Output format 中选Intel extended→勾上Override default,在Exe文件夹里就有×××.hex,结束
2019-08-05 15:00:57 1308
原创 HAL库UART的几个常用函数讲解+中断处理过程
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);串口发送,发送指定长度的数据。如果超时没发送完成,则不再发送,返回超时标志(HAL_TIMEOUT)。HAL_StatusTypeDef HAL_UART_Receive(...
2019-08-05 15:00:45 10069
原创 stm32 ADC功能
1.开启Px时钟和ADCx时钟,设置Px为模拟输入,例:GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC2 , ENABLE );GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStruct...
2019-08-05 15:00:28 795
原创 STM32窗口看门狗和独立看门狗的区别,看门狗介绍及代码演示
转载地址:https://www.cnblogs.com/pertor/p/9483445.html
2019-08-05 15:00:17 288
原创 输入捕获实验理解
关于捕获中断函数的理解如下。if((TIM5CH1_CAPTURE_STA&0X80)==0)//还未成功捕获此时判断是否溢出:1.溢出,出发更新中断if (TIM_GetITStatus(TIM5, TIM_IT_Update) != RESET){ if(TIM5CH1_CAPTURE_STA&0X40)//已经捕获到高电平了 { if((T...
2019-08-05 14:25:53 985 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人