
ARM
xiayufeng520
成为富有的人才是对自己最大的善良
展开
-
STM32的时钟安全系统(CSS)系统
原因 在实际应用中,经常出现由于晶体振荡器在运行中失去 作用,造成微处理器的时钟源丢失,从而出现死机的现象,导致系统出错。严重时,由于系统的死机造成监控失效, 导致无法挽回的损失!目的 STM32作为一个可靠稳定的微处理器,但是不能排除由于某些外界特殊因素可能造成STM32的外部振荡器失效,所以在芯片中需要一种包含机制能够在STM32运行时,一旦外部晶体振荡器(HSE) 失...原创 2020-01-26 10:49:44 · 7106 阅读 · 0 评论 -
KeilMDK 编译警告Warning: L6304W: Duplicate input file
KeilMDK 编译警告如下:.\Output\STM32.axf: Warning: L6304W: Duplicate input file .\output\diskio.o ignored..\Output\STM32.axf: Warning: L6304W: Duplicate input file .\output\ff.o ignored..\Output\STM32.原创 2015-05-31 22:50:59 · 18821 阅读 · 1 评论 -
KeilMDK配置项中Use MicroLIB是干什么的
在Keil MDK建立STM32的工程时,其中有一项是选 use MicroLIB由于对KEIL不是很熟悉,于是就查了查,得到了以下信息:microlib 是缺省 C 库的备选库。 它旨在与需要装入到极少量内存中的深层嵌入式应用程序配合使用。 这些应用程序不在操作系统中运行。microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO原创 2015-06-02 12:08:41 · 17376 阅读 · 1 评论 -
STM32F1驱动AM2302温湿度传感器
先来个AM2302的自我介绍: AM2302数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个AM2302传感器都在极为精确原创 2015-05-31 22:36:26 · 13294 阅读 · 11 评论 -
STM32F4 按键FIFO设计
设计按键 FIFO 主要有三个方面的好处: 1. 可以有效的记录按键事件的发生,特别是需要实现按键的按下,长按,弹起等事件,使用 FIFO的方式来实现是一种非常好的思路。 2. 系统是非阻塞的,这样系统在检测到按键按下的情况下,由于机械按键抖动的原因不需要在这里等待一段时间,然后再确定按键是否按下。 3. 按键 FIFO 程序在嘀嗒定时器中定期的执行检测,不需要在主程序中一原创 2015-07-19 14:39:59 · 3584 阅读 · 3 评论 -
STM32内存使用及分配
堆空间和栈空间配置Stack Size,一般小工程0X400足够,我们综合实验才设置0X1000就够用,所以默认无需设置太大。Stack_Size的值根据你程序中局部变量最大尺寸计算, Heap Size,如果没有用到标准库的malloc,就是废物,纯属浪费内存,所以直接设置为0即可。Heap_Size的值如果程序中没有用到动态内存malloc就默认不用管。编译后空间使用情况 在Keil中编译工原创 2017-12-28 15:53:49 · 4297 阅读 · 0 评论 -
基于STM32F4移植W5500官方驱动库ioLibrary_Driver
1.关于 ioLibrary_Driver1.1. ioLibrary 概述The ioLibrary means “Internet Offload Library” for WIZnet chip. It includes drivers and application protocols. The driver (ioLibrary) can be used for the applicat...原创 2018-03-18 18:02:51 · 12424 阅读 · 0 评论 -
KeilMDK编译错误Error: L6200E
KeilMDK 编译错误如下:Error: L6200E: Symbol asc2_1206 multiply defined (by lcd.o and oled.o)错误解析:在同一个工程里面,不同的功能之间增加了一个函数,而这个函数是一样的,所以叫multiplydefined解决方法:对于multiply defined这个问题:lcd和oled两个项目分开,...原创 2019-04-20 17:12:39 · 9582 阅读 · 2 评论 -
OK6410 串口警告:warning: conflicting types for built-in function 'putchar'
【编译器版本】arm-linux-gcc 4.3.2【问题描述】在做OK6410裸机开发时,自己写了一个putchar函数,也就是通过串口发送字符串到超级终端。但在编译程序的时候出现了如下问题:warning: conflicting types for built-in function 'putchar'【问题分析】在C语言标准中,有些通用函数被定义为built-in functi...原创 2015-05-28 14:04:12 · 2124 阅读 · 0 评论 -
u-boot移植报错:arm-linux-ld:u-boot.lds:19: syntax error
移植u-boot-2013.04-rc1 到OK6410上的时候,编译的时候报错 “arm-linux-ld:u-boot.lds:19: syntax error”解决办法如下:由于, u-boot.lds文件是 u-boot-nand.lds 的链接文件,那我们就去看看这个文件进入目录 /u-boot/board/samsung/smdk6410找到文件:u-boot-nand.ld...原创 2015-05-28 13:46:28 · 6530 阅读 · 0 评论 -
卸载驱动报错:“Unable to handle kernel paging request at virtual address bf018000 ..........”
编写一个BMA150驱动程序,简单介绍下BMA150的特征。BMA150是一款三轴重力加速度传感器能够感知到加速度的变化,比如晃动、跌落、上升、下降等各种移动变化都能被BMA150转化为电信号,用户直接从寄存器读取坐标即可。BMA150可以测量配置+/-2g +/-4g +/-8g范围的加速度,同时也可测量温度。BMA150提供给用户spi/i2c接口。整个驱动程序,使用普通I/O模拟I2C协...原创 2015-05-24 22:19:04 · 2672 阅读 · 1 评论 -
KeilMDK编译错误Error: L6218E: Undefined symbol __aeabi_assert (referred from xxx.o).
问题描述:AirPressure\AirPressure.axf: Error: L6218E: Undefined symbol __aeabi_assert (referred from mbrtu.o).问题原因:"Error: L6218E: Undefined symbol __aeabi_assert..." 能够发生是因为“Project ->Options ...原创 2019-05-11 13:15:04 · 21246 阅读 · 4 评论 -
KeilMDK编译警告:warning: #514-D: pointless comparison of unsigned integer with a negative constant
编译包含下面一段代码的程序,代码如下:if (cmd == -1){ plen=fill_tcp_data_p(buf,0,PSTR("HTTP/1.0 401 Unauthorized\r\nContent-Type: text/html\r\n\r\n401 Unauthorized")); goto SENDTCP;}编译结果针对这行,做出如下警告:web_ser原创 2015-06-02 12:02:09 · 16946 阅读 · 0 评论 -
KeilMDK4.22 编译STM32工程警告:warning: #223-D: function " *** " declared implicitly
建立工程,编译大量报错和警告:..\FWlib\src\stm32f10x_usart.c(135): warning: #223-D: function "assert_param" declared implicitly..\FWlib\src\stm32f10x_usart.c: assert_param(IS_USART_ALL_PERIPH(USARTx))原创 2013-01-30 18:56:36 · 26823 阅读 · 1 评论 -
RCC_APB2Periph_AFIO--复用IO时钟的使用
为了优化64脚或100 脚封装的外设数目,可以把一些复用功能重新映射到其他引脚上。设置复用重映射和调试I/O 配置寄存器(AFIO_MAPR) 实现引脚的重新映射。这时,复用功能不再映射到它们的原始分配上。 需要用到外设的重映射功能时才需要使能AFIO的时钟外部中断(EXTI)中与AFIO有关的寄存器是AFIO-EXTICR1、2、3,它们是用来选择EXTIx外部中原创 2013-02-04 15:37:15 · 7089 阅读 · 0 评论 -
文件系统FatFsR0.09a翻译(二):ffconf.h
//本译文只供学习使用,未经作者许可,不得用于其它任何用途 //译者:xiaofeng//修改日期:2013/03/18//版本:V1.0//版权所有,盗版必究。1234567891011121314151617181920212223翻译 2013-04-21 09:17:11 · 6953 阅读 · 0 评论 -
文件系统FatFsR0.09a翻译(三):ff.h
//本译文只供学习使用,未经作者许可,不得用于其它任何用途 //译者:xiaofeng//修改日期:2013/03/19//版本:V1.0//版权所有,盗版必究。1234567891011121314151617181920212223242翻译 2013-04-21 09:15:31 · 6348 阅读 · 0 评论 -
文件系统FatFsR0.09a翻译(一):integer.h
//本译文只供学习使用,未经作者许可,不得用于其它任何用途 //译者:xiaofeng//修改日期:2013/03/18//版本:V1.0//版权所有,盗版必究。1234567891011121314151617181920212223242翻译 2013-04-21 09:18:40 · 1435 阅读 · 0 评论 -
STM32F1使用I/0模拟I2C接口
使用模拟时序的方法,对比于硬件I2C接口来说,在实时性和传输速度上会带来一些无法避免的下降,但是I2C总线本身也不是一种速度很快的总线(据相关资料可查,最高的速度为400KHZ),同时也不需要具备很高的实时性能。所以,模拟I2C时序完全能满足绝大部分的场合要求,并且移植性得到了很大的提高。闲话不多说,贴上代码,大家一起分享下。首先贴出 i2c_soft.h实现:/*********原创 2015-05-31 22:27:29 · 6594 阅读 · 0 评论 -
STM32F1进入HardFault_Handler()
在做SRAM访问时,出现问题,问题代码如下:主函数程序如下:/* * 函数名:main * 描述 : 主函数 * 输入 :无 * 输出 : 无 */int main(void){ USART1_Config(); printf("USART IS OK!\r\n"); SysTick_Init(); LED_GPIO_Init();原创 2015-05-31 22:31:06 · 1655 阅读 · 2 评论 -
KeilMDK 编译报错:error: #268: declaration may not appear after executable statement in block
KeilMDK STM32 uCOS-II 编译报错:error: #268: declaration may not appear after executable statement in block编译包含下面代码的文件/* * 函数名:Task_USART1 * 描述 : 任务创建函数 * 输入 :*p_arg * 输出 : 无*/void Task_U原创 2015-06-02 11:58:47 · 75462 阅读 · 9 评论 -
KeilMDK4.22 编译STM32工程报错:Error: L6218E: Undefined symbol
inking....\Output\GPIOled.axf: Error: L6218E: Undefined symbol SysTick_CLKSourceConfig (referred from systick.o)..\Output\GPIOled.axf: Error: L6218E: Undefined symbol SysTick_CounterCmd (referred原创 2013-01-30 18:58:43 · 10524 阅读 · 0 评论