C语言
最好的自己in
"倘若希望在金色的秋天收获果实,那么在寒意侵人的早春,就该卷起裤腿,去不懈地拓荒、播种、耕耘,直到收获的那一天"
展开
-
Nordic延时函数-用机器码写函数!
机器码写函数原创 2023-02-16 16:33:25 · 366 阅读 · 0 评论 -
疑问:STM32应用于频率计/计数器的性能问题
有这样一种脉冲信号需要计数:5V CMOS,脉宽固定为10ns计数误差要求是±10%(暂定)闸门时间:最小1ms疑问1:stm32单片机能不能识别10ns的脉宽?疑问2:stm32 IO口的最高输入频率?最快翻转速度?能否提供高速TTL(CMOS)输入?疑问3:如果使用片上计数器(定时器),不考虑IO,理论最大输入频率是?最小脉宽是?疑问4:中断本身对计数/计频的影响有多大,如何影响?...原创 2020-05-20 22:59:07 · 484 阅读 · 0 评论 -
有趣的问题:键盘打字如何显示到屏幕中?
键盘输入的内容为什么会显示到屏幕上?这其中到底发生了什么?这个问题很有意思。第一 常识判断很显然这是一个信号传输的过程,这是一种一一对应的关系,输入一个数字显示一个数字,输入一种组合按键,会自动翻译为特定字符。第二 基于软件的理解当使用过C\C++等偏底层的语言时,可能处理或者python\C#等,如果是用C写单片机软件,键盘扫描、OLED显示的过程和这个类似,这是一个编码采集...原创 2020-05-02 00:16:43 · 2361 阅读 · 1 评论 -
keil 编译通过,链接出现 Undefined symbol CAN_FilterInit (referred from msgctrlwithCan.o).
问题在于“CAN_FilterInit”函数是明明白白定义了的,怎么就是Undefined symbol?这是Keil编译器未如实报错产生的误导。实际上CAN_FilterInit 根本没有编译成功,因为其中依赖的函数接口(上图下方)没有定义,根本原因是工程没有加入库文件“stm32f4xx_can.c”。所以说看完所有报错再做判断,纠结一条实是耽误时间。关于编译通过连接出...原创 2019-11-21 15:11:18 · 984 阅读 · 0 评论 -
STM32 HAL库 串口收发崩溃原因 : __HAL_LOCK
一般工况是类似MODBUS主从通讯,上位机发下位机收,如果通信负载不大,极少出现发送数据时候出现接收中断,不过这种BUG经不起通讯测试。如:测试用例:测试冗余数据发送,使用自动测试脚本,在通信帧的校验码后字节添加1-8字节随机数,每种字节长度测试10000次。以上测试初串口就会崩溃,只能发不能收,调试结果是,串口接收中断不再响应。源码中使用HAL_UART_Receive_I...原创 2019-10-21 16:02:59 · 6961 阅读 · 7 评论 -
Keil V5 仿真器基本使用 - FreeRTOS无硬件仿真
STM32的开发过程中几乎用不到软件仿真,开个工程仿真一下算法功能是个好主意,只是有硬件干嘛不用在线调试呢……不过最近需要深入RTOS,还是需要好好利用MDK这个强大工具。1. 找到一个FreeRTOS 闪烁LED的工程,修改晶振为8MHZ,debug选项下选中“使用仿真器”,更改DiaLog DLL文件名和传参值,视不同Devcice做相应修改,这控制着调试窗口中的外设信息。2....原创 2019-09-29 00:00:30 · 3605 阅读 · 0 评论 -
STM32硬件错误“HardFault_Handler”与RW-Data、RO-Data的联系
如题,如果因为一些偶然的因素,导致开始思考这样的问题,那一定会使人迷惑,如果进而对STM32启动流程、编译链接原理、内存管理、Flash编程、Keil V5的魔术棒设置项等再研究一遍,最终纠缠无果的时候,真是令人烦恼万千……实际上,此二者没有直接关系!最后原因真的很大众,就是数组越界操作。我要说的是,之所以会复杂化这个问题,是因为不是所有的数组越界操作都会导致运行时报错,原因在于如果这...原创 2019-07-10 16:15:37 · 346 阅读 · 0 评论 -
TMC5160步进电机驱动芯片开发手记
2018年,Trinamic推出了新的型号TMC5160,自带6点速度曲线、StealthChop和SpreadCycle静音防抖技术等很不错的功能,目前使用官方BOB板进行开发测试,在初步参数整定之后,可以接近伺服的效果。我们的应用对运动的平稳和静音要求很高,86步进电机直驱直径40-50mm的转盘,要求运行的平滑,以及盘上的芯片盒不会震动产生噪音,原先采用富士伺服系统控制效果很好,只是最近...原创 2019-05-30 17:13:28 · 17285 阅读 · 0 评论 -
开源逻辑分析仪(DSLogic)
近日入手了传说中的DSLogic,因为是开源项目的原因所以总想去探探究竟。网罗了一些资料,在此做个记录:这是国内梦源实验室(DreamSourceLab)基于开源项目“sigrok”做出的开源软硬件产品,sigrok种类繁多的支持硬件中有它。sigrok(真正的幕后BOSS):https://sigrok.org/sigrok支持的设备:https://sigr...原创 2019-04-20 16:08:46 · 20795 阅读 · 5 评论 -
基地址文件
Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xe.h代码的地址结构基本上是一个base地址+偏移地址但是也有例外,F103VET6外设的基地址是:/*!< Peripheral memory map */#define APB1PERIPH_BASE PERIPH_BASE#define APB2PERIP...原创 2018-10-02 22:20:00 · 719 阅读 · 0 评论 -
关于启动代码
启动文件由汇编编写,是系统上电复位后第一个执行的程序。主要做了以下工作:1、 初始化堆栈指针 SP=_initial_sp2、 初始化 PC 指针=Reset_Handler3、 初始化中断向量表4、 配置系统时钟5、 调用 C 库函数_main 初始化用户堆栈,从而最终调用 main 函数去到 C 的世界...原创 2018-09-28 00:06:31 · 495 阅读 · 0 评论 -
Keil编译出现“The Arm C/C++ Compiler 已停止工作”解决
今天安装MDK 4.73,又出这个问题了。在英文账户和常用的中文账户中来回切换着实不方便。在amoBBS里发现一个更简单的解决方法,就是修改环境变量的Tmp值,指向一个用户级可写的英文文件夹即可。在Win7下,系统盘下的目录很多是用户级不可写的,简单起见,可以用非系统盘的英文目录,如D:\Temp。具体修改方法:首先建立文件夹"D:\Temp",然后右击我的电脑-->属性-->高级系...转载 2018-10-10 22:42:27 · 5326 阅读 · 2 评论 -
stm32F030手册勘误-VDDA与VDD的关系
官方PDF资料确实很多,却也看到无数个VDDA与VDD的说明错误:以上等等……就不一一列举了芯片数字电源VDD必须要≥芯片模拟电源VDDA,并且VDD不能滞后于VDDA上电,虽然没见过有人加肖特基二极管,不过手册里确实是这么写了………………官方资料里正确的说法在这里:...原创 2019-03-09 22:57:00 · 4435 阅读 · 3 评论 -
FDC2214电容检测芯片-液位检测(金属探针探测液面)方案分析
做医疗产品,样品或者试剂需要液位检测,出于个人爱好的原因,出了一版,在确认方案前仅供学习验证。硬件设计STM32F030F4P6 + FDC2214 ,考虑到小型化要求,均不使用外部晶振实物图:一直认为,类似这种把几个数字IC搭积木一样拼装起来根本算不上什么硬件设计,可是样板下来,LDO那边芯片使能竟然搞反了(上图原理图已改正),空间小,割铜完了再...原创 2019-03-26 17:16:55 · 17523 阅读 · 24 评论 -
serialplot - 开源QT串口上位机 - 温度曲线显示
介绍一个不错的开源项目serialplot,顺便再次安利Arduino,作为程序员,不管你有多专业,Arduino及其周边总有海量的资源等待你去探索,感谢Arduino这个NB的项目!!回归正题,serialplot。一个可视化的串口收发工具,QT源码开源,是不是每一个底层软件工程师都需要一个可以100%掌控的上位机呢?源码:https://bitbucket.org/hyOzd/s...原创 2019-04-16 15:55:10 · 13207 阅读 · 6 评论 -
复旦FM17522芯片读写M1卡(S50/S70)、CPU卡要点摘录
目录概述卡的存储结构/文件结构M1卡存储结构复旦CPU卡的文件结构卡的权限管理方式M1卡控制字CPU卡安全状态寄存器卡的认证M1卡的三次互相认证复旦CPU卡的外部认证和内部认证机具内部认证步骤发卡流程M1卡发卡流程复旦cpu卡发卡流程读卡器模块PC/STM32端(控制端)ISO/IEC 14443 TYPE A协议M1卡...原创 2016-10-14 15:29:58 · 22224 阅读 · 4 评论