自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (工控超实用!)串口RS485模仿IIC协议进行一主机控制多个从机!

我是这样做的,屏幕作为上位机主机,三个单片机设备作为从机,通过485总线进行通信,为三个单片机设备分配地址,0x01、0x02、0x03,加上帧头:0xADD(表示地址帧头),帧尾:0xADF(表示地址帧尾) ,完整的一个地址数据帧 : 0xADD 0x01 00xADF (表示呼叫一号设备)假设,主机在总线上发了一个 0xADD 0X01 0XADF 的命令,这样所有的从机都接收到了这个数据,知道它是地址帧,然后就会和自己的地址进行比较,屏幕的作用是下达控制命令和接收来自单片机设备的状态信息。

2024-05-28 10:39:09 1526

原创 基于STM32的串口转485通信(modbus)需要注意的问题

然后我以为是设备响应时间过长了,所以在呼叫之后加延时10ms,再读取,可是依旧没有解决,然后我用一个计数值,在while()循环里计数到不同的数值再分别呼叫不同的设备,比如计数到200,呼叫1号设备,计数到400呼叫到2号设备,计数到600,呼叫3号设备,这样还是没有解决。就是你呼叫1号设备的时候,1号设备立即响应,1号设备会发送信号到总线上,然后你的串口又继续发送了呼叫2号设备modbus指令到485总线上,这里两帧数据的间隔过于小,所以就会造成对485设备来说,这就是一帧数据。

2024-05-16 09:03:15 802

原创 笔试面试高频题:static 和 const的作用是什么?

当主函数调用test这个函数时,进入这个函数,在栈区,创建了 i 和 j 还有sum这三个变量,当执行完毕这个函数,i ,j ,sum这三个变量都会被系统从栈区中销毁,假如用static修饰了变量i,变量i就会被创建在静态区而不是栈区,它直到程序结束才会被销毁。3.修饰函数: static对函数的修饰和修饰全局变量的功能很相似,修饰函数时也是会改变函数的链接属性,从而使得函数的作用域变小,仅限定在源文件中使用,其他文件不可调用该函数。此时我们只能访问,而不能重新给变量a赋值。例如 定义一个函数。

2024-04-10 09:38:17 580 3

原创 基于STM32F103的485modbus通信问题,

我用STM32F103单片机的UART3连接一个sp3485芯片,利用485通信,485总线上挂载了四个485传感器,分别是采集PH,电导率,液位,和含氧量的四个传感器。但是,只能维持一天的时间左右,大概过了30个小时,单片机又会采集到全部都是零的数据,但是不是死机的状态,他其他程序还是可以运行,就是采不到数据。解决办法,在全局数组的前面加 const 关键字,和将全局数组定义成局部数组,需要的时候就重新初始化,用完立即释放内存。所以,当你希望一个数据它不被修改的时候记得加上 “const” 修饰。

2024-04-10 09:29:45 393 3

空空如也

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

TA关注的人

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