自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 Linux下线程同步

互斥锁pthread_mutex_t lock;//初始化互斥锁int ret=pthread_mutex_init(&lock,NULL);//加锁pthread_mutex_lock(&lock);//解锁pthread_mutex_unlock(&lock);//销毁锁pthread_mutex_de...

2022-03-12 16:54:00 171

原创 Linux下信号学习

一、信号的概念和作用信号相当于软件中断,进程接收到对应信号后执行相应的动作;信号的作用是实现进程间的通信在某种情况下通过信号将情况告知进程,从而达到同步、通信的目的。二、信号的产生和处理信号有四种产生方式:(1)硬件中断,如除数为0、数组溢出等。(2)Ctrl+c/z(3)kill命令(4)软件事件触发。信号的处理:信号由进程处理,处理方式有3种:1、忽略;2、调用信号处理函数;3、系统调用;三、信号的分类根据可靠性分析分为可靠信号和不可靠信号,当在处

2022-02-11 20:58:04 553

原创 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 2289

原创 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 366

原创 Linux系统编程笔记(一)

Linux系统编程即为通过调用系统函数和C语言库函数实现对内核的操作,对不太了解底层原理的开发者来说,就是通过引入对应的头文件从而直接使用对应的API接口函数。1.简单的文件IO操作。常用函数解析:(1)打开文件int fd = open("./app.c", O_RDWR)if (-1 == fd)return fd;解析:以可读可写的方式打开app.c文件。(2)读文件ret = read(fd1, buffer, sizeof(buffer));解析:从文件中读

2022-01-09 22:08:38 861 1

原创 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 3194

原创 stm32问题汇总2

问题1、由于所用st库版本不一致,某个adc寄存器未配置导致左右对齐方式不对,从而读取adc值错误。解决措施:用原来的库或者配置该寄存器参数。问题2:通过上位机更新程序时未考虑下位机擦写时间,导致上位机发送数据超时重新发擦命令导致问题。解决措施:擦写flash时增加延时。问题3:对于1路485携带多个设备的电路,需要将Execute()重新创建任务执行。问题4:对于freertos操作系统,不可在中断中调用系统函数,比如sys_getticktype(),若要调用,则使用带isr的系统函数,否则会

2021-12-23 07:30:47 3499

原创 stm32问题汇总

stm32问题汇总问题1:stm32跑多任务操作系统时(比如freertos),在主任务喂狗,当非主任务挂掉后,主任务依旧喂狗导致异常。解决措施:在最低级任务喂狗,当一个任务挂掉后,控制器不喂狗导致重启。问题2:stm32运行多任务操作系统时,系统时钟挂掉导致任务切换异常。解决措施:在任务中通过rtc时钟判断系统时钟是否正常,系统时钟持续10s不变化则软件重启控制器。问题3:将车号存在flash中,但车号依旧丢失了。解决措施:stm32的flash为nor flash,没有擦写均衡算法,所以应该

2021-12-22 22:49:04 1593

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除