- 博客(24)
- 资源 (3)
- 收藏
- 关注
原创 RS485 芯片SN65HVD72DR导致的死机问题调试
最后终于找到一个既不死机又能正常用它的办法,就是 在给它使能上电(拉高RS_EN)之前,把TX,RX 两个脚分别设为带上拉电阻输出高电平。至于根本原因,应该是rs485 收发器在上电时 ,有干扰信号(如浪涌,电磁干扰,噪声干扰)通过RX,TX 两个脚 传导到MCU 内部,导致MCU 逻辑混乱死机。对了,这颗MCU 是用内部时钟运行的。因为 只要不给它上电(拉高RS_EN),MCU 就不会死机。最近再一次栽倒在这颗RS485 芯片上了,硬件说这和芯片功耗有点高,要控下电源, 结果10次有9次程序死机!
2024-08-05 17:17:58
702
原创 通过EXCEL表格快速推导多项式拟合公式
已知有限的几个点位数据,来推导多项式拟合公式,再运用多项式预测有限范围内的其它点位数据,这在检测中非常用。例如已知以下几个点的数据。2,选中数据,依次点击 “插入” --->"散点图"--->“带平滑曲线和数据标记的散点图”然后右边会出现趋势线的格式选择拦 -----> 选择多项式,阶数可以选2或者更高。3,点击曲线,单击右键,选择添加趋势线。
2024-07-26 09:31:00
4478
原创 RS485 数据不通 debug 调试记录
软件上看起来没有任何问题,但是RS485 工具就是收不到数据,用工具发送数据也不进接收中断,立马上示波器抓波形,结果 ,MCU 端 ,RX 无波形,TX 有波形;Driver data input ,字面意思是驱动数据输入,理解为要发送的数据从这个脚输入,此脚接MCU 的TX;最近调试一颗 TI 的rs485 收发器芯片 :SN65HVD72DR ,遇到到点麻烦,既不能收,也不能发送。接收数据后的输出端,即接收来自485总线上的数据后,发送数据出来的引脚,此脚 要接MCU 的 RX;
2024-06-04 10:48:40
756
原创 STM32串口DMA 空闲中断使用笔记
6,上面第5点可以看出,这个函数需要反复调用,一般放在串口中断函数里面就可以了,不能放在回调函数里,因为一旦出现异常没有进中断,那么在没有其它地方调用HAL_UARTEx_ReceiveToIdle_DMA的话 ,就再也不进空闲中断了,DMA 也不接收了。在这个函数中,可以做一些事情,比如记录收到了多少个字节数据,或者对接收数据处理。1,要开启串口 全局中断 和对应的接收DMA 中断,两个中断必须同时开。4,重写空闲中断回调函数 ,它是个弱函数,需要程序员自己实现。2,调用开启DMA接收函数;
2024-06-03 09:14:17
621
1
原创 STM32 FreeRTOS 常用API
1,信号量信号量分为二进制信号量 和计数型信号量 信号:起通知作用量:还可以用来表示资源的数量当"量"没有限制时,它就是"计数型信号量"(Counting Semaphores)当"量"只有0、1两个取值时,它就是"二进制信号量"(Binary Semaphores)支持的动作:释放 给出资源,计数值加1 ,请求时获得资源,计数值减1但是它们的创建,获取,释放都是一样的:sSemaphoreId_t osSemaphoreNew (uint32_t max_count, uint32_t initi
2024-05-06 16:16:50
1207
原创 STM8 调试总结
下面是 STM8 uart 接收中断函数,是最普通的串口中断,串口接收到一个字节 数据就产生一个中断。2,当收到 0xFF 的字符时 ,判断一下是否是数据包的结尾(只有定长数据包才可以采用这种方式处理)/* 接收的数据包以 0x55 开头 ,以0xFF 结尾,长度固定为11个字节*/1,每次中断进来 ,就从 USARTx->DR 寄存器中取出一个字节保存至缓存中。
2023-10-10 14:53:27
782
1
原创 rtmp :0:: WriteN, RTMP send error 104 原因分析过程
这里有个疑问,SRS 配置了DVR , 当dvr 出现问题时,没有对应的报错信息处理 ,tail -n 30 -f ./objs/srs.log 没有任何错误信息出来 ,这是不对的,希望以后有大牛改善SRS这个问题。仔细思索了一下,看看存储路径,顺便 df -l 看看储存空间 ,果然DVR 存储空间满了,清理存储空间后,继续 推流15路视频,一切OK 了。说了这个发现后,二逼同事不乐意了,说不可能 ,之前项目也有做DVR 配置,肯定不是DVR的问题的。这时,我知道肯定是服务器环境发生了改变导致的。
2023-06-09 10:27:27
1176
原创 MD5 算法
今日学习了 MD5算法 过程,做个记录。MD5算法的具体过程有以下4步:(1)附加填充位(2)初始化链接变量(3)分组处理(迭代压缩)(4)步函数直接上源码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdint.h>#include <time.h>#define LEFTSHIFT(x,c) (((x) &l
2022-02-21 16:02:41
565
原创 jlink 烧录出错 programming failed @ address 0x00000000 解决办法
近几日调试 M0+ MCU ,使用jlink 烧录 总是弹出 programming failed @ address 0x00000000 的错误,开始以为硬件问题,后来发现换了新MCU ,第一次烧录是OK 的,后来再烧 一次就这样了,于是推测芯片可能 被锁住了,解决办法:J-Link Commander 输入:unlock Kinetis 搞定!!...
2019-05-23 16:47:43
25615
2
原创 IAR 开发环境基础技巧
因工作需要,接触IAR 开发环境有一段时间了,简单记录下基本使用技巧:1,查看实时变量值:进入调试状态,打断点到你想查看变量值的语句,运行程序到断点时 ,把鼠标放在变量处,就可以自动显示该变量的值。。。。后续再补充。...
2019-03-05 19:59:02
946
原创 IAR常见的错误及解决方法
最近开始玩IAR 环境开发 keaz128k MCU ,特收录总结一些关于IAR 的错误解决办法,以便日后查阅本文参考http://zhenling.chen.blog.163.com/blog/static/194085192009713101043668/(1)Error: Copy protection check, No valid license found for this p...
2019-01-22 09:52:36
24412
原创 Ubuntu14.04 安装Android 编译环境之 环境变量设置1---学习笔记
修改 配置文件:sudo vi /etc/profile 在文件的最后加入:#JDK 环境变量设置export JAVA_HOME=/home/kld/Desktop/android/jdk1.8.0_74export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:$CLASSPATH:${JAVA_HOME}/lib:${JRE_
2017-04-20 11:58:38
367
转载 Kbuild Makefile介绍
从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这同过去的编译系统有很大的不同,尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的Makefile,然后根据读到的内容第二次读取Kbuild的Makefile来编译Linux内核。Linux内核Makefile分类· Kerne
2016-11-23 15:20:51
526
原创 ubuntu 14.04 samba安装 解决指定的网络名不再可用
最近几天因为工作上的需要,需要安装32位的Ubuntu ,因为ubuntu 之前一直在用,都用几年了,原以为装个32位ubuntu 那还不是手到擒来,小菜一碟吗?谁知一动手,立马遭遇尴尬,直接被一个小问题打脸了 !当我把samba 安装后,进入共享文件内 不能创建文件!!! 再改改配置文件,甚至都进不去共享目录 !!无名的烦躁和郁闷 ,疯狂的百度找各种原因 ,Samba 配置文件 s
2016-04-25 09:13:55
9508
转载 gcc命令
gcc命令编程开发gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。语法gcc(选项)(参数)选项-o
2016-04-03 22:12:29
533
原创 从头学习编译过程
之前经常接触Makefile ,但近日跟随 韦东山老师学习时,总觉的自己了解的不透彻,所以决定再复习一遍。经典的样例代码:#include void main(void){ printf("hello world!!!!!\n"); return;}以上内容保存为hello.c ,linux 环境下cd 到当前目录,输入:gcc -o
2016-04-02 17:56:59
1217
转载 Makefile选项CFLAGS,LDFLAGS,LIBS
温故而知新CFLAGS 表示用于 C 编译器的选项,CXXFLAGS 表示用于 C++ 编译器的选项。这两个变量实际上涵盖了编译和汇编两个步骤。CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,
2016-04-02 12:08:44
455
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人