Others
文章平均质量分 57
走路打滑
梦想有天去放羊
展开
-
vscode 排除头文件搜索路径
vscode 排除头文件搜索路径原创 2023-04-12 17:03:04 · 744 阅读 · 0 评论 -
编译和链接
可分解为4个步骤:预处理(Preprocess)、编译(Compile)、汇编(Assembly)和链接(Link)。原创 2022-06-30 14:17:34 · 581 阅读 · 0 评论 -
可执行文件中的段
现在PC平台上流行的可执行文件格式主要是Windows下的PE(Portable Executable)和 linux 下的ELF(Executable Linkable Format),它们都是COFF(Common file format)格式的变种。 下面的讨论只在linux下进行,且使用目标文件.o来进行段的讲解。因为目标文件相较于可执行文件的段会少许多,也不会缺少重要的段,没有链接过程看到的现象也更加直接。 目标文件就是源代码编译后但未进行链接的那些中间文件(Windo原创 2022-06-30 17:05:27 · 698 阅读 · 0 评论 -
LCD1602按下复位后乱码的问题
1602按下后会有乱码的问题,其实根本上是硬件引起的。某些最小系统般的复位电路没做好,按下复位键后,就会产生乱码但是出现这种现象,是可以用软件后期修正的。由于LCD复位后默认是8线输入,如果函数LCD_write_command是一个按四线输入写入的函数,那么执行LCD_write_command(0x28);等效为先写入8线指令0x20;写入后LCD已经改为了四线模式,再写入4线指令8x的......原创 2020-04-30 08:44:11 · 7458 阅读 · 0 评论 -
IIC-1602驱动
硬件:STM32103C8T6、LCD1602(带转接板)软件:STTM32MX、HAL库、硬件IICCUBEMX的配置很简单,但是注意要在SYS-Debug中选择调试方式,不然会出现下载一次程序后板子变成砖的情况。配置硬件IIC也很简单,按照如下配置即可,然后生成代码:生成的代码中有一项需要注意的,切记,切记,在调用 HAL_I2C_Master_Transmit 这个函数写IIC-1602的时候,第二个参数是目标设备地址,就是我们使用的1602的地址。这个按具体情况而定。..原创 2020-11-11 13:03:41 · 1407 阅读 · 4 评论 -
SRAM数据保存时间
在用原子哥标准库版本跑SRAM例程,没有问题,SRAM容量识别出来是1024k 而再用原子哥HAL版本跑SRAM历程,就出现了问题。读出来的SRAM容量永远只有4K,将两个例程再三比对,发现在SRAM数据保存时间处存在差异FSMC_ReadWriteTim.DataSetupTime=0x08; 标准库版本的将这个时间设置的长一些。后来在HAL库中将其数据保存时间该长一些,问题就解决了。 FSMC_DataSetupTime,控制FSMC的速度,越大越慢 但某些玄学原因,...原创 2020-09-23 16:42:47 · 648 阅读 · 0 评论 -
C语言学习笔记
结构体计算要遵循字节对齐原则。结构体默认的字节对齐一般满足以下准则:原创 2022-09-20 15:39:56 · 448 阅读 · 0 评论 -
WSL2下使用openocd连接外部调试器开发STM32
在linux下搭建STM32的开发环境,通常会用到 openocd 去连接到外部的调试器,如 J-Link,CMSIS-DAP,再提供网路端口给gdb。但由于现阶段 WSL2 访问外部的 USB 设备会存在不足,且WSL2 默认采用了一个NAT网络,如果想要把 WSL2 中的服务直接暴露出来,就不得不考虑做端口转发等问题。 但是 WSL2 给我们留了一条后路,那就是允许在 WSL 里执行 .exe 文件。...原创 2022-08-14 19:01:15 · 1665 阅读 · 1 评论 -
CAN_总线基础二
目录1:CAN帧种类介绍:2:数据帧3:遥控帧4:DLL_错误检测5:CAN_位时序6:同步参考:https://blog.csdn.net/CWLonger/article/details/106768843?biz_id=102&utm_term=CAN%E4%BD%8D%E5%A1%AB%E5%85%85&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~defa原创 2020-07-28 17:02:01 · 1259 阅读 · 0 评论 -
CAN_总线基础一
目录1:CAN的由来:2:CAN的协议标准:3:CAN的物理层特征1:CAN的由来:德国Bosch公司开发CAN总线的最初目的是解决汽车上数量众多的电子设备之间的通信问题以及减少电子设备之间数量繁多的信号线束,于是设计了一个单一的网络总线,使得所有的外围电子控制单元可以挂接在该总线上。2:CAN的协议标准:2.1:ISO 11898 是CAN 总线规范,对应的是OSI 模型物理层和数据链路层,对于物理层而言,定义了CAN 总线信号在双绞线的电压形式;对于数据链路层而言,原创 2020-07-28 16:36:47 · 605 阅读 · 0 评论