笔记
Hello World&
不会写代码的渣渣
展开
-
Linux下vscode实现调试
1、安装好vscode,安装对应的插件。2、编写代码,点击右上角的三角形,生成对应可执行文件。3、点击菜单栏中的终端—配置任务,选择“c/c++:GCC build active file”会生成tasks.json文件,按照网上内容更改该部分(其实就是复制)。同时会自动生成一个.vscode的文件夹。配置如下4、按f5,在上面选择C++(GDB//LLDB),之后按照如下对其进行配置。5、点击菜单栏中的调试—启动调试,之后打断点单步运行即可。...原创 2022-01-17 19:52:01 · 2342 阅读 · 0 评论 -
Linux系统编程笔记(二)
空洞文件创建一个新文件之后,通过iseek()函数定位到非0位置开始调用write()函数,比如定位到4096位置处写,则0-4096这段就是空白的,这样的文件叫空洞文件。可以通过ls -lh 文件名查看文件逻辑大小,包括空洞文件大小和实际数据部分大小。可以用 du -h 文件名查看文件实际占用存储块的大小。o_APPEnd和o_trunc在open函数中使用o_trunc则原数据全部丢弃,文件大小变为0 。在open函数中使用o_append则使用write函数是将写位置定位到文件末尾。多次打原创 2022-01-11 22:35:40 · 389 阅读 · 0 评论 -
STM32_RS485通信异常
问题描述:stm32芯片带一路485设备,通过modbus协议通信,其中stm32为主设备,读取到的数据混乱,断开485设备,通过串口调试助手监测stm32发出的数据正常,连接485设备后,将usb转485设备并到485总线中监测数据正常,断开usb转485后数据异常。解决方案:通过并入或者断开usb转485设备对总线数据产生了影响,怀疑为硬件导致的,万用表测总线电阻值(正常为防止信号反射会在485总线上并联两个120Ω的电阻)发现电阻值不为60Ω,经测量是485设备电阻选型错误导致。更改电阻后通信正常。原创 2021-12-25 08:10:13 · 3314 阅读 · 0 评论 -
stm32问题汇总2
问题1、由于所用st库版本不一致,某个adc寄存器未配置导致左右对齐方式不对,从而读取adc值错误。解决措施:用原来的库或者配置该寄存器参数。问题2:通过上位机更新程序时未考虑下位机擦写时间,导致上位机发送数据超时重新发擦命令导致问题。解决措施:擦写flash时增加延时。问题3:对于1路485携带多个设备的电路,需要将Execute()重新创建任务执行。问题4:对于freertos操作系统,不可在中断中调用系统函数,比如sys_getticktype(),若要调用,则使用带isr的系统函数,否则会原创 2021-12-23 07:30:47 · 3543 阅读 · 0 评论 -
stm32问题汇总
stm32问题汇总问题1:stm32跑多任务操作系统时(比如freertos),在主任务喂狗,当非主任务挂掉后,主任务依旧喂狗导致异常。解决措施:在最低级任务喂狗,当一个任务挂掉后,控制器不喂狗导致重启。问题2:stm32运行多任务操作系统时,系统时钟挂掉导致任务切换异常。解决措施:在任务中通过rtc时钟判断系统时钟是否正常,系统时钟持续10s不变化则软件重启控制器。问题3:将车号存在flash中,但车号依旧丢失了。解决措施:stm32的flash为nor flash,没有擦写均衡算法,所以应该原创 2021-12-22 22:49:04 · 1618 阅读 · 0 评论