嵌入式开发——MCU
文章平均质量分 51
海鲜小王子
记录点滴,SHU,小硕,EE
展开
-
STM32 JTAG失效恢复
昨天调试一块STM32L151的板子,用的是JlinkOB,调试时,出现下面的错误: JLink Error:could not start CPU core. JLink Warning:CPU could not be halted 这个错误出现的原因是,程序中有修改JTAG端口(PA13,PA14)的语句,当把JTAG当做普通IO口时,JLink就不能返回调试信息,JLink就读不原创 2016-05-28 13:39:32 · 3983 阅读 · 0 评论 -
无线路灯项目——SIM900A调试
1.波特率 1.1自适应波特率 当SIM900A模块处于自适应波特率下,模块开机后,会从串口发出一串字符,在上位机不同的波特率下,会显示出不同的字符,以115200为例子,模块开机后,上位机会收到如下信息,其中0x49是英文字母”I”的ASCII码: 然后我们发送AT指令,即可把模块的波特率同步成我们上位机的波特率(能同步成功的波特率是特定的几个:1200、2400、4800、9600、原创 2016-05-28 13:42:50 · 5393 阅读 · 0 评论 -
无线路灯项目——SX1278调试
430能与430通信,STM32能与STM32通信,但它们之间就无法通信,进入不了RxDone中断,但可以进入FHSSChangeChannel中断,说明能收到信号,但信号不对。于是我怀疑430的无线参数跟我的STM32参数不匹配,怀疑他们给的程序不是芯片里正在跑的。我下载了CCS,用430的LaunchPad上自带的仿真器去调试,用这个仿真器,我们只需要接2根线即可,分别是SBW RST和SBW原创 2016-05-28 13:40:35 · 13837 阅读 · 8 评论 -
无线路灯项目——STM32L151概述
STM32L151RCT 256KB 属于Cat.3 在stm32l1xx.h文件中,有下面一幅图,说明了不同容量的MCU应该用哪个startup.s文件 有关density和Cat名称的问题,ST官方给出下面的说法: Replaced “Low density”, “Medium density”, “Medium+ density” and “High density” catego原创 2016-05-28 13:41:06 · 6639 阅读 · 0 评论 -
无线路灯项目——STM32L低功耗相关
1.STM32L主要特性 影响功耗的两大要素,一个是电压,一个是频率 2.高效的处理 如果仅考虑处理功耗的话,用mA/DMIPS来表达,M3的核会比其他16位架构的MCU要好(这里感觉指的主要就是其竞争对手的MSP430) NOTE中提到一种典型的应用:便携式健康医疗设备,设备可运行在4MHZ的时钟下,这时的核电压只需最低的1.2V,外部电压最低可至1.65V 3原创 2016-05-28 13:41:33 · 5880 阅读 · 0 评论 -
啸叫抑制装置
题目中有一个指标是200Hz到10kHz的频率xiangyi原创 2014-08-18 21:45:04 · 754 阅读 · 0 评论 -
调试uIP出现死机问题
在调试uIP,加入http功能时,调试出现死循环 原因是所加入的http文件中含有printf等输出函数,遇到这种情况,有2种解决方法: 1.Keil中勾选“Use MicroLIB” 2.//加入以下代码,支持printf函数,而不需要选择Use MicroLIB#if 1#pragma import(__use_no_semihosting) //标原创 2016-05-28 13:37:29 · 739 阅读 · 0 评论 -
计算机网络基础
一.物理层 物理层定义了网口RJ45的尺寸大小,网线上电压的模式等。那些在网线中传播的二进制数据流是这层的具体表象。也就是说,这一层上面没有什么协议,就算有,也就曼切斯特编码算协议。我们把两台机器用网线连起来,或者用集线器(HUB)把机器都连起来,这些工作就是物理层的工作。原创 2016-05-28 13:33:57 · 6698 阅读 · 0 评论 -
基于555芯片的延时小灯
按键延迟小灯:原创 2014-10-15 09:10:45 · 1139 阅读 · 0 评论 -
串口——RS232与UART
MCU上的UART是TTL电平的,3.3V是高电平,0是低电平;PC上的UART是RS232电平的,+5~+12为低电平,-5~-12为高电平原创 2015-10-28 12:48:03 · 4493 阅读 · 1 评论 -
树莓派入门之装系统
1.首先下载一个格式化SD卡的工具,格式化SD卡https://www.sdcard.org/downloads/formatter_4/eula_windows/ 2.下载Win32 DiskImager,这是一个把镜像写入SD卡的工具http://sourceforge.net/projects/win32diskimager/ 3.下载镜像https://www.raspberrypi.原创 2016-05-28 13:39:06 · 47176 阅读 · 2 评论 -
STemWin移植
目前micrium官网ucgui版本是v5.26Trial版本,无源代码,只有lib文件,现在网上流传最多的源码是ucgui3.90或3.98版本的,这些源码没有完整官方版本。emWin是segger公司的,segger与ST等公司都有合作,使用ST的芯片可以免费使用emWin,STemWin:http://www.st.com/web/catalog/tools/FM147/CL1794/SC9原创 2016-05-28 13:32:32 · 8735 阅读 · 0 评论 -
LWIP之HTTP
硬件平台:STM32F107VCT6+DP83848(F103要使用以太网,要通过SPI接口去控制ENC28J60,速度慢;F107将MAC层集中进芯片,外围电路只需一个PHY控制器,速度快)LWIP例程下载地址:http://www.st.com/web/en/catalog/tools/PF257862UIP:https://github.com/adamdunkels/uip原创 2016-05-28 13:44:21 · 6202 阅读 · 0 评论 -
温度PID控制
刚开始时,用Ae(k)+Be(k-1)+Ce(k-2)来计算PID,但效果不佳,只能在原创 2014-07-06 14:13:10 · 7462 阅读 · 0 评论 -
高温传感项目调试日记
1.Link to sources新建工程路径中既没有源代码,也没有库,源代码和库在系统文件夹里如果这时修改库或源代码,系统文件夹中的也相应修改。等到下次新建或者其他工程要包含这个库时,可能就不是原来的版本2.Link libraries and copy sources新建工程路径中有源代码,没有库,库在系统文件夹里3.Copy contents新建工程路径中既有源代原创 2015-10-28 12:47:54 · 734 阅读 · 0 评论 -
uIP的ARP协议分析
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址(MAC)的一个TCP/IP协议。在三层网络层我们确定了IP地址后,信息来到了二层进行再封装,在二层需要MAC地址,这时就通过三层的IP去寻找二层的MAC。 信息沿着下图的黑线路径进行传播,从高层往低层是不断封包,从低层往高层是不断解包。 下图是ARP的帧格式 结构ether_原创 2016-05-28 13:36:08 · 1963 阅读 · 0 评论 -
STM32的UART DMA传输总结
使用DMA传输可以连续获取或发送一段信息而不占用中断或延时,在通信频繁或有大段信息要传输时非常有用。 由上表可知,要使用USART1TX/RX我们选择通道4和51、 DMA传输方式: (1) DMA_Mode_Normal,当通道配置为非循环模式时,传输结束后(即传输计数变为0)将不再产生DMA操作。要开始新的DMA传输,需要3个步骤:在关闭DMA通道的情况下,在DMA_CNDTRx寄原创 2016-05-28 13:38:15 · 19754 阅读 · 0 评论 -
如何使函数不生成执行代码
Keil在链接生成最终的执行代码时是按obj为单位添加链接的,若一个obj中的函数都未被调用,则不生成执行代码。 举一个例子//main.cvoid app1(){……}void main(){ //app1();}在同一个.c源码中,main函数调用了app1,这时若我们把app1注释掉,生成的可执行代码并不会小很多,因为app1和main一起生成了一个obj。如果我们原创 2016-05-28 13:35:35 · 472 阅读 · 0 评论 -
uIP使用记录
uIP(WIKI:https://en.wikipedia.org/wiki/UIP_(micro_IP))的初始开发者是Adam Dunkels(http://dunkels.com/adam/),这是一个开源的轻量级的TCP/IP协议栈,适用于8位或16位MCU,占用的RAM可从几百byte到几千byte不等,它仅可以处理单网络接口:IP、ICMP、UDP、TCP。uIP可从Adam Dunke原创 2015-11-01 16:50:18 · 3267 阅读 · 2 评论 -
define宏定义细节及uCOS中宏定义技巧
1.预编译阶段把所有#include ”***.h“ (“”与2.生成最后的exe文件是由编译、链接两步完成的, 编译是源代码生成obj二进制目标文件的过程, 注意一个源代码文件(指.c,而非.h,.h已经被包含进.c中了)生成一个obj文件,由于编译是独立的, 所以在两个独立的编译单元里是可以有重名的函数的,例如a.c中可以有一个void fun(); b.c中可同时有一个void fun(原创 2015-10-28 12:51:24 · 793 阅读 · 0 评论 -
QT打包
1.运行QT Release版本的exe文件2.用Process Explore查看exe文件所依赖的dll文件3.用Enigma Virtual Box将exe文件和所需要的dll文件打包4.在打包好的exe文件的相同目录下,新建一个platforms文件夹,里面要放上qwindows.dll原创 2015-10-28 12:48:49 · 324 阅读 · 0 评论 -
boost/buck电源
对于DCDC,大家都不陌生,因为就是开关电源,当然还有AC/DC,通常的AC/DC,都是110V或者220V交流变换为直流电源,我们这里先来讨论DCDC电源设计。 DCDC电源类型分为2种,一种是隔离性,一种是非隔离型。隔离型DCDC 的意思是输出的GND和输入的GND是无关系的,也成为悬浮电源。常见的DC-DC芯片大都是非隔离型的。隔离性的电源,是双向,也叫做升压降压类型,转载 2014-05-03 17:11:53 · 16232 阅读 · 1 评论 -
简易频率特性测试仪
最近的笔试与面试都被问到要求简述所做原创 2014-05-03 17:12:17 · 1136 阅读 · 1 评论 -
MCU位定义
typedef union{uint8_t byFlag;struct BIT_FLAG{uint8_t buttonAccept:1;uint8_t buttonLongAccept:1;}bitFlag;}MYFLAG;原创 2014-05-27 22:11:02 · 549 阅读 · 0 评论 -
buck-LDO
前级是开关电源buck降压电路,后记原创 2014-06-21 15:30:13 · 1304 阅读 · 0 评论 -
MSP430软件DDS
该程序的主体是向DA发送DDS的数据,外设有原创 2014-06-30 23:43:14 · 874 阅读 · 0 评论 -
寝室空调遥控解码
以前寝室的空调遥控器由宿管阿姨掌guan原创 2014-07-06 18:37:53 · 5470 阅读 · 0 评论 -
微弱信号检测装置
噪声源从PC机的音频口输出,将耳机剪开,原创 2014-10-15 09:09:50 · 2532 阅读 · 0 评论 -
简易网络阻抗测试仪
待测网络和标准阻抗的连接形式如下:原创 2014-10-15 09:09:51 · 1221 阅读 · 0 评论 -
可变参数函数——以printf为例子
一. 调用形式void foo(int argv1, char argv2, …) 在参数表的末尾给出省略号,表明这个函数的参数是可变的二. 工作原理进程在调用函数时,会将函数参数压入用户栈,压入的顺序是从参数表右端开始,从右至左的压栈顺序支持了可变参数的实现。左边的参数在低地址,右边的参数在高地址。进入函数后,以左边的参数为线索,可透过指针依次访问右边省略掉的参数。 可变参数原创 2016-12-18 23:34:36 · 983 阅读 · 0 评论