- 博客(4)
- 收藏
- 关注
原创 (工控超实用!)串口RS485模仿IIC协议进行一主机控制多个从机!
我是这样做的,屏幕作为上位机主机,三个单片机设备作为从机,通过485总线进行通信,为三个单片机设备分配地址,0x01、0x02、0x03,加上帧头:0xADD(表示地址帧头),帧尾:0xADF(表示地址帧尾) ,完整的一个地址数据帧 : 0xADD 0x01 00xADF (表示呼叫一号设备)假设,主机在总线上发了一个 0xADD 0X01 0XADF 的命令,这样所有的从机都接收到了这个数据,知道它是地址帧,然后就会和自己的地址进行比较,屏幕的作用是下达控制命令和接收来自单片机设备的状态信息。
2024-05-28 10:39:09
2217
原创 基于STM32的串口转485通信(modbus)需要注意的问题
然后我以为是设备响应时间过长了,所以在呼叫之后加延时10ms,再读取,可是依旧没有解决,然后我用一个计数值,在while()循环里计数到不同的数值再分别呼叫不同的设备,比如计数到200,呼叫1号设备,计数到400呼叫到2号设备,计数到600,呼叫3号设备,这样还是没有解决。就是你呼叫1号设备的时候,1号设备立即响应,1号设备会发送信号到总线上,然后你的串口又继续发送了呼叫2号设备modbus指令到485总线上,这里两帧数据的间隔过于小,所以就会造成对485设备来说,这就是一帧数据。
2024-05-16 09:03:15
1178
原创 笔试面试高频题:static 和 const的作用是什么?
当主函数调用test这个函数时,进入这个函数,在栈区,创建了 i 和 j 还有sum这三个变量,当执行完毕这个函数,i ,j ,sum这三个变量都会被系统从栈区中销毁,假如用static修饰了变量i,变量i就会被创建在静态区而不是栈区,它直到程序结束才会被销毁。3.修饰函数: static对函数的修饰和修饰全局变量的功能很相似,修饰函数时也是会改变函数的链接属性,从而使得函数的作用域变小,仅限定在源文件中使用,其他文件不可调用该函数。此时我们只能访问,而不能重新给变量a赋值。例如 定义一个函数。
2024-04-10 09:38:17
620
3
原创 基于STM32F103的485modbus通信问题,
我用STM32F103单片机的UART3连接一个sp3485芯片,利用485通信,485总线上挂载了四个485传感器,分别是采集PH,电导率,液位,和含氧量的四个传感器。但是,只能维持一天的时间左右,大概过了30个小时,单片机又会采集到全部都是零的数据,但是不是死机的状态,他其他程序还是可以运行,就是采不到数据。解决办法,在全局数组的前面加 const 关键字,和将全局数组定义成局部数组,需要的时候就重新初始化,用完立即释放内存。所以,当你希望一个数据它不被修改的时候记得加上 “const” 修饰。
2024-04-10 09:29:45
519
3
空空如也
Stm 32f103c8t6单片机RS 485收发数据的通信
2024-03-18
关于RS485 modbus通信挂载多个设备通信不稳定的问题
2024-03-11
我的485电路这样设计,PCB这样布局合理吗?
2024-03-11
stm32fatfs文件系统,执行函数f_mount挂载设备时卡死
2024-02-26
怎么利用 stm32f103存储传感器采集的数据到sd卡中
2024-02-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人