![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式MCU
文章平均质量分 56
无语僧314
我的QQ技术交流群:123534470,联系我说CSDN微博认识。
展开
-
STM32多级程序跳转实现IAP在线升级方案(BOOT+APP方式)
需求说明:需要实现MCU通过BOOT程序启动,加载App主程序。BOOT程序实现程序烧录功能,App实现主程序业务功能。BOOT和App程序均存储在MCU内部Flash里面。实现原理:MCU型号:STM32L432RC存储空间分布:0x8000000~0x800f000 boot存储区0x800f000~0x8010000 参数存储区0x8010000~0x8028...原创 2020-02-01 17:57:28 · 4217 阅读 · 4 评论 -
STM32串口接收中断卡死无法接收数据问题及解决办法(已解决)
问题现象:STM32L432单片机MCU程序串口1,接收中断方式,发送采用查询方式。当使用SSCOM定时发送数据给MCU时,正常情况下,MCU收到什么就会回什么数据。如果使用100ms发送,MCU长时间测试都正常。如果使用1ms或者5ms发送数据给MCU,会出现MCU出现异常,MCU无法再接收到数据,接收中断也进不去。发送数据也无效。通过设置断点,发现接收中断设置不成功的原因是gState值HAL...原创 2020-02-01 17:28:05 · 21034 阅读 · 1 评论 -
LPC21xx系列 外部中断寄存器EXTINT…
LPC2114有4个外部中断,分别为EINT0、EINT1、EINT2、EINT3,具有4个相关得寄存器。外部中断输入可以用于将处理器从掉电模式唤醒。 EXTINT是外部中断标志寄存器。当一个管脚选择使用外部中断功能时,对应在EXTMODE和EXTPOLAR寄存器中得位选择得电平或边沿将置位EXTINT寄存器的中断标志。这样来向VIC提出中断请求,如果管脚中断使能,则产生中断。低4位与外部中断引脚...原创 2017-02-18 14:52:59 · 2125 阅读 · 0 评论 -
关于ARM裸机ADS中implicit
ARM编程:ADS中有关const的错误报警ARM编程:ADS中有关const的错误报警implicitcast of pointer loses 'const' qualifier现象:用const定义const unsigned char str1[9600]={.....}用函数suc(unsigned char *puts)调用str1字符串的时候ADS会报错implicit cast o...原创 2017-02-18 14:52:43 · 377 阅读 · 0 评论 -
S3C2440与SDRAM的地址连线分析
文章来源:不详 作者:佚名该文章讲述了S3C2440与SDRAM的地址连线分析. S3C2440有27根地址线ADDR[26:0],8根片选信号ngcs0-ngcs7,对应bank0-bank7,当访问bankx的地址空间,ngcsx引脚为低电平,选中外设。2^27=2^7 * 2^10 *2^10 = 128Mbyte8*128Mbyte =1Gbyte所以S3C2440总的寻址空间是1Gb...原创 2017-02-18 14:53:49 · 961 阅读 · 0 评论 -
ARM7-LPC2132驱动LCM的接口说明
显示设计是所有嵌入式系统的重要组成部分之一。显示器件包括LED、字符LCM、图形LCM、VFD等,其中图形LCM(如128x64、192x64等点阵)可显示ASCII字符、汉字和图形,且性价比较高,在嵌入式系统中的应用日趋广泛,虽在MCS-51系列中的设计已非常成熟。但由于ARM与MCS-51有许多不同之处,其设计方法当然也有差别,下面以LPC2132和192x64点阵LCM为例进行说明。 与...原创 2017-02-18 14:52:38 · 737 阅读 · 0 评论 -
S3C2440和S3C6410性能比较
比较项目 S3C2440 S3C6410 内核 ARM920T ARM1176JZF-S 主频 400MHZ 533MHZ/667MHZ 处理器类型 16/32-bit RISC 16/32-bit RISC 设计目标 高性能、低功耗 高性能、低功耗、高性价比 主要应用 手持设备 2.5G和3G通信服务 内部总线结构 32/16-bit 64/32-bit 多媒体硬件编码器/解码器 无 有(支持...原创 2017-02-18 14:52:36 · 7281 阅读 · 0 评论 -
S3C6410启动模式介绍
作者:ARM-WinCE 目前的ARM处理器都支持多种启动模式,S3C6410和以前的Samsung的ARM处理器一样,通过外部管脚OM[4:0]的拉高拉低来决定是从哪个存储设备上启动。我认为S3C6410的UserManual并没有说的很清楚,所以我在最开始使用的时候,也对其启动模式有一些误解,下面就我个人的理解,介绍一下S3C6410的启动。 先读一下S3C6410 UserManual的第3...原创 2017-02-18 14:55:01 · 223 阅读 · 0 评论 -
ZYNQ xc7z030平台CPU0、CPU1运行UCOSII/UCOSIII
参考官方教程:https://doc.micrium.com/display/UCOSXSDK/uCOS+BSP+on+the+Zynq-7000+Tutorial#uCOSBSPontheZynq-7000Tutorial-Step4.ProgramtheAXITimer0withtheucos_axitimerDriver中文教程:http://blog.csdn.net/kobesdu/ar...原创 2017-07-18 15:55:39 · 3937 阅读 · 0 评论 -
关于STM32F405单片机控制雷达模块lidar_lite_v3程序及说明
#include "stm32f4_iic.h"#include "lidar_lite_v3.h"#include "stm32f4_delay.h"uint8_t WriteBuffer = 0x55,ReadBuffer = 0,ret;uint8_t ReadData[2];void lidar_lite_v3_init(void){ //WriteBuffer = 0x00; //r...原创 2018-01-23 10:07:08 · 3031 阅读 · 0 评论 -
关于STM32F405单片机控制传感器BMI160程序及说明
#include "bmi160.h"#include "stm32f4_spi.h"#include "stm32f4_delay.h"#include "string.h"#define MAX_ARG_NUM 32 //max of arg numchar bmi160_reg_arg_table[MAX_ARG_NUM][2]={ {0x7e,0x11}, {0x7e,0x15}, ...原创 2018-01-23 10:05:52 · 5850 阅读 · 1 评论 -
ST_LINK/V2 SWIM和SWD、JTAG下载口及驱动安装说明
LED状态说明闪烁红色:ST-LINK/V2连接到计算机后,第一次USB枚举过程红色:ST-LINK/V2与计算机已建立连接闪烁绿色/红色:目标板和计算机在进行数据交换绿色:通讯完成橙色(红色+绿色):通讯失败-----------------------------------------------------------------------------------------------...原创 2017-12-19 10:53:27 · 20266 阅读 · 0 评论 -
快速应用一款新MCU的方法总结
在工作中,有时往往会因为项目进度要求需要用一款自己以前未曾使用过的MCU来进行产品的开发,而且进度要求很急,为此,我结合自己使用多款MCU的经验,谈一下如何以最快的速度来掌握和面对此情况: 1。认真阅读Datasheet中的第一页(Summary 部分),一般该页都会将此器件的所有特点和主要参数进行详细地说明; 2。快速浏览一遍其CPU的结构(最小系统结构),地址映射,系统时钟;3。快速浏览一遍功...原创 2017-02-18 14:54:35 · 556 阅读 · 0 评论 -
MSP430 单片机的特点
处理能力强 MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7 种源操作数寻址、4种目的操作数寻址)、简洁的 27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。这些特点保证了可编制出高效率的源程序。运算速度快 MSP430系列单片机能在25MHz晶体的驱动下,实现40ns的指令周期。16位...原创 2017-02-18 14:53:15 · 3913 阅读 · 0 评论 -
关于STM32F767单片机控制传感器ADIS16448程序及说明
#include "stm32f4_system.h"#include "stm32f4_spi.h"#include "stm32f4_delay.h"#include "adis16448.h"#include "string.h"#define MAX_ARG_NUM 32 //max of arg numchar adis16448_reg_arg_table[MAX_ARG_NUM][...原创 2018-01-23 10:04:18 · 2803 阅读 · 7 评论 -
DSP仿真器Debug错误原因及解决办法
错误现象:在使用xds100v3仿真器调试tms320c6747处理器时,出现如下一堆错误。C674X_0: Power Failure on Target CPU Error connecting to the target:(Error -1265 @ 0x0)Device ID is not recognized or is not supported by driver. Confirm ...原创 2018-03-24 10:50:32 · 32725 阅读 · 7 评论 -
常用串口调试工具比较(详细)
目前有许多免费的串口调试工具,比较常用的有:1、友善串口调试助手(v2.6.5)优点: 1)使用方便,不丢包; 2)串口自动识别,支持COM9以上串口; 3)支持多串口调试; 4)支持历史发送记录; 5)广泛支持各种波特率,高达10 Mbps以上波特率,具体和电脑硬件有关。 下载地址:http://rj.baidu.com/soft/detail/27520.html?ald缺点:会丢失数据,刷屏...原创 2018-03-30 08:55:43 · 157494 阅读 · 9 评论 -
As of version 8.0.0 of the C6000 Code G....x of the C6000 Code Generation Tools.
CCS8.0.0导入工程后,出现编译错误问题。现象如下图:解决办法:下载安装原工程使用的编译器。路径:http://software-dl.ti.com/codegen/non-esd/downloads/download.htm...原创 2018-03-22 09:47:59 · 868 阅读 · 0 评论 -
Product 'XDAIS' v0.0 is not currently installed and no compatible version is available.
CCS当编译的时候会出现下面的错误提示。 Buildfile generation error occurred.. Product 'XDAIS' v0.0 is not currently installed and no compatible version is available. Please install this product or a compatible version. ...原创 2018-03-22 09:57:46 · 21024 阅读 · 6 评论 -
ZYNQ平台AMP模式Linux+裸机(UCOS)实现
第一步:先按照官方教程将UCOS和Linux均跑起来,UCOS相关资料参考如下:http://blog.csdn.net/wuyusheng314/article/details/75307590第二步:创建能在CPU1独立跑起来的UCOS工程。然后设置编译开关-g -DUSE_AMP=1,同时设置UCOS配置选项:UCOS_AMP_MASTER=false第三步:因为UCOS是作为AMP模式下...原创 2017-07-20 11:09:15 · 5621 阅读 · 1 评论 -
ZYNQ XC7Z030平台Linux+裸机AMP实现(官方文档1078、1079)
根据Xilinx官方指导文档1078、1079来调试AMP模式启动比较费劲,因为已经很老的教程了。其实整个文档有用的就那么几个点。总结下来实现上,就几行代码。为了让广大码友轻松实现,特写方法如下:第一步:创建zynq fslb的普通工程,再main里面增加loadcpu1的代码。void LoadCpu1(void){#if 1fsbl_printf(DEBUG_GENERAL,"FSBL: wr...原创 2017-07-20 17:31:56 · 4815 阅读 · 0 评论 -
STM32F767单片机UART DMA程序源码
#include <string.h>#include "stm32f7_uart_dma.h"#include "../MyModules/RingQueue.h"#include "../MyModules/Protocol.h"/** @addtogroup STM32F7xx_LL_Examples * @{ *//** @addtogroup USART_Communic...原创 2018-03-03 09:15:16 · 2886 阅读 · 0 评论 -
列举 Windows 所有进程…
列举 Windows 所有进程(ToolHelp)引子由于这阵子必须得做几个小东西才行,估计着呢,是要做个 Windows 的任务管理器出来才行,但是在功能上呢,又必须得比 Windows 任务管理器强大一点,说实在的,在 Windows7 里面的 Windows 任务管理器在功能上已经很强大了,而我这里说的强大一点呢,并不是说要在功能上比 Windows7 的任务原创 2017-02-18 14:57:12 · 771 阅读 · 0 评论 -
Windows (wince、 wind…
Windows (wince、windows mobile、windows phone)错误代码大全DWORD ErrorNum = GetLastError(); 〖0〗-操作成功完成。 〖1〗-功能错误。 〖2〗-系统找不到指定的文件。 〖3〗-系统找不到指定的路径。 〖4〗-系统无法打开文件。 〖5〗-拒绝访问。 〖6〗-句柄无效。 〖7〗-存储控制块被损坏。原创 2017-02-18 14:57:02 · 2080 阅读 · 0 评论 -
获取当前程序路径函数,传入当前目…
经过多方调试总结出下列函数以供快捷开发使用。 PCHAR GetFileDirectory(CString file){ DWORD dwPos; CString path; GetModuleFileName(NULL,path.GetBufferSetLength(MAX_PATH+1),MAX_PATH); path.ReleaseBuffer(); dwPos = p原创 2017-02-18 14:56:46 · 192 阅读 · 0 评论 -
char 转wchar_t 及wchar…
利用widechartomultibyte来转换的函数通常适合于window平台上使用#include#includeint _tmain(int argc, _tchar*argv[]){wchar_t pwstr[] =l"我是中国人";wchar_t pwstr2[20]; char *pcstr= (char *)malloc(sizeof(char)*(2原创 2017-02-18 14:56:44 · 290 阅读 · 0 评论 -
操作系统单体内核和微内核的区别
单体内核:大内核,将OS的全部功能都做进内核中,包括调度、文件系统、网络、设备驱动器、存储管理。比如设备驱动管理、资源分配、进程间通信、进程间切换管理、文件系统、存储管理、网络等。单体内核是指在一大块代码中实际包含了所有操作系统功能,并作为一个单一进程运行,具有唯一地址空间。大部分UNIX(包括Linxu)系统都采用的单体内核。微内核:微内核与单体内核不同,微内核只是将OS中最核心的功能加入内核原创 2017-02-18 14:55:49 · 14643 阅读 · 3 评论 -
static作用(修饰函数、局部变量、…
static作用(修饰函数、局部变量、全局变量)在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A原创 2017-02-18 14:55:47 · 371 阅读 · 0 评论 -
uCOS-II 常用函数参考手册(转)
任务管理1 OSTaskCreate()建立一个新任务。任务的建立可以在多任务环境启动之前,也可以在正在运行的任务中建立。中断处理程序中不能建立任务。一个任务可以为无限循环的结构。函数原型:INT8U OSTaskCreate(void (*task)(void *pd), void *pdata, OS_STK*ptos, INT8U prio);参数说明:task 是指向任务代码首原创 2017-02-18 14:53:27 · 833 阅读 · 0 评论 -
嵌入式程序员应知道的0x10个基本问…
1 .用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清原创 2017-02-18 14:52:31 · 624 阅读 · 0 评论 -
解决VS2005无法创建 VC++&nbs…
VS2005和VS2008开发环境,安装IE8以后,无法创建 VC++ Smart DeviceProject,解决方法如下: 1、打开Regedit 2、找到键值“HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/InternetSettings/Zones/” 3、找到项“1000”,如果不存在,则创建原创 2017-02-18 14:57:41 · 312 阅读 · 0 评论 -
九种编程语言大对比
图解九种主流编程语言,从Python、Java到Objective-C。码农世界,哪种才是最好的编程语言?这9张信息图囊括了九种主流编程语言:Python、Java、C、C++、JavaScript、C#、Ruby、PHP以及Objective-C。对于每种编程语言,大家都能够看到由其打造的顶级应用成果,相关职位的平均薪酬(美国)以及该语言的优势与弊端。转载 2017-03-20 16:21:59 · 142132 阅读 · 10 评论 -
ArcGIS、Super、MapMapInfo…
原文地址:ArcGIS、Super、MapMapInfo比较作者:女施主请留步ArcGIS、Super、MapMapInfo比较 软件选型是GIS应用项目开发中的重要环节。在国内外众多的GIS软件产品中,"没有最好的,只有最合适的"。本文档从功能、性能、二次开发能力和技术支持等多方面剖析ArcGIS、SuperMa...转载 2017-02-18 14:59:12 · 4824 阅读 · 0 评论 -
C++常见面试笔试集锦
1. C 和 C++ 区别 2. const 有什么用途 主要有三点: 1:定义只读变量,即常量 2:修饰函数的参数和函数的返回值 3: 修饰函数的定义体,这里的函数为类的成员函数,被const修饰的成员函数代表不修改成员变量的值 3. 指针和引用的区别 1:引用是变转载 2017-12-28 17:14:32 · 599 阅读 · 0 评论 -
c++常见面试题30道
转自:http://blog.csdn.net/shihui512/article/details/9092439;1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和转载 2017-12-28 17:12:01 · 232 阅读 · 0 评论 -
STM32F767串口配置问题(UART、USART)
配置都一样。原创 2018-01-02 19:12:10 · 4244 阅读 · 0 评论 -
STM32F7系列时钟相关问题一:HSE模式配置(旁路模式、非旁路模式
不论STM8还是STM32系列的MCU,芯片复位后默认时钟源都是内部HSI,要使用外部时钟源HSE的话,得通过软件对相关控制寄存器进行使能配置才行。 如果使用外部HSE的话,一般有两种模式: 1、外部晶体/陶瓷谐振器(HSE晶体)模式 这种模式用得比较常见,HSE晶体可以为系统提供较为精确的时钟源。在时钟控制寄存器RCC_CR中的HS原创 2018-01-01 20:23:52 · 15582 阅读 · 8 评论 -
C语言的条件编译#if, #elif, #else, #endif、#ifdef, #ifndef
有些程序在调试、兼容性、平台移植等情况下可能想要通过简单地设置一些参数就生成一个不同的软件,这当然可以通过变量设置,把所有可能用到的代码都写进去,在初始化时配置,但在不同的情况下可能只用到一部分代码,就没必要把所有的代码都写进去,就可以用条件编译,通过预编译指令设置编译条件,在不同的需要时编译不同的代码。 (一)条件编译方法 条件编译是通过预编译指令来实现的,主要方法有: 1、#原创 2017-02-18 14:53:01 · 857 阅读 · 0 评论 -
程序员10大基础实用算法
算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and c转载 2017-12-14 11:27:25 · 403 阅读 · 0 评论 -
c语言中static使用方法
一、c程序存储空间布局 C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。 3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。 4)栈——增长方向:自顶向下增长;自动变量以及每次原创 2017-02-18 14:52:28 · 2338 阅读 · 1 评论