关于STM32程序仿真时卡死在default_handler的解决方法

问题描述:在debugger模式下,运行后,串口通信正常,过一会串口通信异常,暂停仿真发现程序死在default_Handler 原因:没有中断入口函数,当然了,有些人可能会这么写 void USART1_IRQHandler(void) { } 以为这样就算是加了中断入口函数了,但开启串口中断接收 USART_ITConfig(USART2, USART_IT_RXNE, ENABLE) 时,同时也打开了串口ORE中断。所以,中断入口函数应该这么写 void USART1_IRQHandle
分类: 其他 发布时间: 11-02 22:36 阅读次数: 0

电脑往单片机发数据格式问题总结

1.串口精灵设置十六进制显示,每个字节就是单片机串口SBUF依次收到的数据。 2.电脑发字符串到单片机中,那单片机接收到数据形式是字符,也就是ASCALL码。 3.电脑给发个数据13,那就是看成字符1和字符3,写在一起“13”发给单片机。 单片机接收到字符(char) 1和3,想还原成整形13必须使用'1'对应内容是0x31, ‘3’对应是0x33进行换算。这种情况,直接电脑端发送二进制数0x0c就行。 也就是说单片机程序必须要有对字符的处理程序,本质上串口工具都有此处理程序。 4.发字符串,
分类: 其他 发布时间: 11-02 22:36 阅读次数: 0

STM32调试小结

花费一个月时间玩了一下STM32,因工作原因好几年没有编程了。鉴于工作需要学习了 一下STM32固件库的编程,针对一个月的重拾编程以及程序调试工作进行总结。 STM32开发优点: 1.固件库大大简化开发难度,提高编程效率; 2.固件库中各种外设程序范例详实,可以直接拿来使用; 3.仿真器便宜,淘宝上几十元就可以搞定。本人使用以前BLE电路上的J-LINK盗版仿真器, 注意该版本仿真器驱动一定要注意版本。 当时安装驱动程序搞了一下午都连接不上,使用J-LINK V6.12J才搞定。一定要注意驱动
分类: 其他 发布时间: 11-02 22:35 阅读次数: 0

keil 编译通过 链接错误 解决

今天试了一个nordic sdk5_12.3的例子,打开后编译链接,结果编译通过,链接却提示有4个函数没有声明,但是回头再看文件,明明有引用头文件啊,,为什么还不过呢?我又试了使用extern声明还是不行。 linking... .\_build\nrf51422_xxac.axf: Error: L6218E: Undefined symbol app_fifo_flush (referred from app_uart_fifo.o). .\_build\nrf51422_xxac.axf
分类: 其他 发布时间: 11-02 22:35 阅读次数: 0

keil mdk调试过程中查看局部变量的方法

上次调试STM32做了一次总结,此次在调试nordic 51822时发现局部变量地址给不出任何信息, 导致无法查看局部变量值。通过和STM32的设置进行必较发现C/C++的编译器等级设置过高,而将 一些局部变量优化掉而没有分配内存地址。 如下图所示,将optimzation优化等级从3等级降低到0等级后 后再查看局部变量p_addr,此值会自动出来。 等级0会为所有变量分配内存地址,这样便于程序开发调试。缺点是占用较大程序空间。 等级3会为优化掉局部变量,不会为其分配内存地址。这样不便于程序开
分类: 其他 发布时间: 11-02 22:35 阅读次数: 0

C语言几个函数用法小结

1.char *ultoa(unsigned long value,char *string,int radix) 将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数 2.char *ltoa(long value,char *string,int radix) 将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数 3.char *itoa(int value,char *string,int radix) 将整数value转换成字串存入str
分类: 其他 发布时间: 11-02 22:35 阅读次数: 0

看了毁你三观的PCB设计理论 高速PCB外层还要不要覆铜了

我们经常在教科书上或者IC原厂的PCB设计指南里看到,在layout的最后,我们应当对PCB的外层进行铺铜处理,即用良好接地的铜箔铺满PCB空白区域。 在PCB外层覆铜的好处如下: 对内层信号提供额外的屏蔽防护及噪声抑制 提高PCB的散热能力 在PCB生产过程中,节约腐蚀剂的用量。(这个能降低成本吗? ) 避免因铜箔不均衡造成PCB过回流焊时产生的应力不同而造成PCB起翘变形 但这么做也会带来一些弊端: 外层的覆铜平面必定会被表层的元器件及信号线分离的支离破碎,如果有接地不良的铜箔(尤其是那种
分类: 其他 发布时间: 11-02 22:34 阅读次数: 0

8位 16位 32位等几种DDR3或LPDDR3的PCB设计总结

以前因为工作需要使用全志A10和A31S设计了PCB,综合对比发现全志的设计约束 有如下特点: 1.DQS查分对和时钟差分对的约束一般为±800mil到±1000mil; 2.地址或控制线和时钟差分对的约束一般为±500mil到±600mil; 3.数据线组内约束都差不多为±50mil。 从网上下载了瑞芯微的不同IC约束进行分析,综合对比发现其比全志的约束要严 格的多。如: 1.DQS查分对和时钟差分对的约束一般为±120mil以内; 2.地址或控制线和时钟差分对的约束一般为±100mil以内
分类: 其他 发布时间: 11-02 22:34 阅读次数: 0

ARM 串口输出函数uart_printf

ARM如果能使用C函数库自带的printf函数格式输出,那多方便,但是默认的printf都是定位到stdout终端,而不是串口,本文章讲述的是如何定位到ARM的串口。 1.1.1 函数主要代码 有在Mini2440开发板上验证过 //*****************main.c******************************* #include"serial.h" int Main() { unsignedint plck_val = 50000000; unsignedint
分类: 其他 发布时间: 11-02 22:34 阅读次数: 0

51822开发总结

1.在使用固件升级时若使用看门狗时,则也要在应用程序和BOOT程序中都要设置看门狗的初始化和喂狗程序。不然会造成固件升级无法正常进行的错误。 2.UART的串口读写函数是建立在其中断函数的基础上,初始化时一定要注册一个回调函数。不然在调用其读写函数时会造成不断重启的错误。 3.在进行128位UUID服务添加时,在协议栈初始化时一定要将计数值加1. 4.固件升级时需要进行如下设置,见下图: 32kb的ram所以设置如下 16kb的ram,则设置如下: ~ 进入pc的cmd的命令,进入C:\Pro
分类: 其他 发布时间: 11-02 22:34 阅读次数: 0

cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法

我们需要明白的是,ble的广播是可以指定广播信道的,广播信道分别是37、38、39, 但TI的协议栈官方例程里已经默认设置了在广播阶段 同时三个信道一起广播,但是一旦跟主机连接上后,就只在其中的一个信道传输数据,所以我们是要指定其中的一个信道的, 可恶的是, 这个连接上的信道也是随机的, 我们可以在抓取到连接包后, 填入发起者(即是主机)的地址和信道即可。 下面我们用 TI官方例程 SimpleBLEPeripheral 结合 cc2540 usb-dongle 和 SmartRF Packe
分类: 其他 发布时间: 11-02 22:33 阅读次数: 0

Cadence Allegro小技巧之解决Out of date shapes问题

当你经过几十个小时的艰苦奋战,终于把板子布完,而当你兴冲冲准备出Gerber文件丢给板厂打样,尽早结束噩梦时,却发现Allegro报错“Dynamic shapes are out of date; please update them. Check for out of date shapes in Setup Drawing Options dialog.”。这是怎么回事?抓狂。打开菜单“Display->Status…”进行检查,你发现“Out of date shapes”项有问题,点
分类: 其他 发布时间: 11-02 22:33 阅读次数: 0

Allegro PCB Designer 17.2如何打开旧版本.brd文件

人老了,忘性有点大,写个小文章记下今天碰到的问题,以后如果忘了怎么解决可以翻出来看看。大神莫笑,请绕行。 最近在学Allegro画板子,用的是于博士的视频,视频配套的软件是15.6版本,我电脑装的是吴川斌老师Cadence 17.2独家版本的。虽然版本不一样,但是感觉新版本用着挺好的。 在使用中就发现了一问题,那就是高版本的Allegro PCB Designer打不开低版本软件生成的文件,报错如下:Design revision 15.x is too old.Must run the ba
分类: 其他 发布时间: 11-02 22:33 阅读次数: 0

深入浅出ESP32开发之二ESP-IDF下载、编译与运行

一、ESP-IDF下载 ESP-IDF全称Espressif IoT Development Framework是乐鑫基于ESP32推出的新一代SDK,基于FreeRTOS系统,在上一代SDK基础上做了众多更新和改进,集合了众多组件。支持在Windows、Linux和MacOS下基于ESP-IDF开发。 ESP-IDF源码已托管在github上,可在https://github.com/espressif/esp-idf下载, 在命令行输入git clone --recursive https
分类: 其他 发布时间: 11-02 22:32 阅读次数: 0

Spring 实现文件下载功能

方式1: public void download(HttpServletResponse response,@RequestParam(value="params") String params) throws IOException, DocumentException{ response.setContentType("application/pdf"); //设置Content-Disposition response.setHeader("Cont
分类: 其他 发布时间: 11-02 22:32 阅读次数: 0

由HTML生成PDF

import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.MalformedURLException;
分类: 其他 发布时间: 11-02 22:32 阅读次数: 0

搭建ubuntu+Java1.8+wildfly

ubuntu 环境配置 1.安装14.04 2.ctrl+F1切换命令行 ctrl+F1切换图形化界面 3.安装ssh sudo apt-get install sshd sudo service sshd start 远程连接 4.安装ftp vsftpd -version sudo apt-get install vsftpd 用户的默认目录是家目录 vim /etc/vsftpd.conf 设置 anonymous_enable=NO #禁止匿名访问 local_enable=YES w
分类: 其他 发布时间: 11-02 22:31 阅读次数: 0

http请求体笔记

一、请求体数据格式 1、application/json:json格式 2、text/plain:纯文本格式 3、application/x-www-form-urlencoded:url编码后产生的数据格式 4、multipart/form-data:主要用于上传文件时使用的数据格式
分类: 其他 发布时间: 11-02 22:31 阅读次数: 0

bzoj3629 / P4397 [JLOI2014]聪明的燕姿

P4397 [JLOI2014]聪明的燕姿 根据唯一分解定理 $n=q_{1}^{p_{1}}*q_{2}^{p_{2}}*q_{3}^{p_{3}}*......*q_{m}^{p_{m}}$ 而$n$的约数和为$\prod_{i=1}^{m} \sum_{j=0}^{p_{i}}q_{i}^j$ 于是我们可以暴搜枚举每个约数的个数,而且只要枚举到$\sqrt{S}$ tips:注意最后一个数字后不带空格 1 #include<iostream> 2 #include<cstdio>
分类: 其他 发布时间: 11-02 22:31 阅读次数: 0

常见react面试题汇总

已经开源 地址:https://github.com/nanhupatar... 关注我们团队: React 中 keys 的作用是什么? Keys 是 React 用于追踪哪些列表中元素被修改、被添加或者被移除的辅助标识。 render () { return ( &lt;ul&gt; {this.state.todoItems.map(({item, key}) =&gt; { return &lt;li key={key}&gt;{item}&lt
分类: 其他 发布时间: 11-02 22:31 阅读次数: 0