历史上的今天
今天是:2024年09月12日(星期四)
2018年09月12日 | STM32L0开发笔记13: 485总线的收发切换时间
2018-09-12 来源:eefocus
使用STM32进行485程序设计时,采用中断进行发数,这就意味着在发数的同时还需考虑收发切换时间。先看下程序:
while (1)
{
Target.HAL.CommonUart.SetWorkingMode(2);
Target.HAL.CommonUart.SendData(Target.HAL.CommonUart.Buffer, 1);
Target.Delayms(4);
Target.HAL.CommonUart.SetWorkingMode(1);
Target.HAL.WorkingLed.Turn();
Target.Delayms(100);
}
程序执行完SendData后,会立刻执行后续的语句,如果没有4ms的延时,此时程序就会把485的状态切换到接收状态,则刚才要发送的数据是发送不出去的。
为了能将数据正常发送出去,执行SendData后,需延时1定的时间才可以,到底需要延时多长时间呢?这就要计算执行完SendData后,数据多长时间发送完毕。
我现在设置的串口波特率是2400bps,发送1字节的时间=1/2400*8=3.3ms。这是延时的最短时间,再加上其它的时耗,进行4ms延时比较稳妥。
如果是多个数据,则需用4ms*数据长度,这样就能保证发送的可靠性了。
史海拾趣
|
周一果然是新开始,来上班就看见新机器了,看了下配置,Intel的Q45平台,四核CPU2.66的主频,4G的DDR3内存,最让我激动的是终于配了Quadro显卡啊,专业产品啊,以后做出来的图再也不用担心不够生动平滑了~~~~ 试了下用CAD做图,果然速度提升有直观 ...… 查看全部问答> |
|
BSP中的FMD.CPP驱动怎么不一样呢?同样的ReadBlock(DWORD dwBlock, LPBYTE pbBlock, PSectorInfo pSectorInfoTable)当LPBYTE pbBlock不为空时,ECC校验就错了~~是不是驱动问题啊~~~ BOOL FMD_ReadSector(SECTOR_ADDR startSectorAddr, LPBYTE pSec ...… 查看全部问答> |
|
现在要对0-25V的直流电压进行隔离采样,精度要求1%,由于霍尔电压传感器的价格 较高,希望能换其他的隔离采样方式! 本来用线性光耦HCNR201大概能实现,但是这个光耦前后级各需一个运放,这样前后 运放就必须各自接不同的电源和地才行, ...… 查看全部问答> |
|
不知道还有哪些参数需要设置一协调器一路由器再通讯,数据交互一直在进行可总是抓包失败,频道是2480没错,三种zigbee版本都试过了,就是不行希望高手帮帮我,谢谢 [ 本帖最后由 高兴就好 于 2011-11-21 11:52 编辑 ]… 查看全部问答> |
|
以下是我在今年9月份,通过网上公司发的DSP招聘要求进行再整理的一份文档。了解这些,相信对你今后的学习,找工作,职业规划都有一个指导作用!把它分享给大家,一方面是希望更多的人能够有目标的学习DSP(当然可能你已经方向很明确,但不了解的也 ...… 查看全部问答> |
|
本帖最后由 shower.xu 于 2014-5-16 21:39 编辑 前面几篇 乱玩BeagleBone1- BeagleBone跑跑系统 乱玩BeagleBone2- BeagleBone建立自己的家庭多媒体服务器 乱玩BeagleBone3- 用SSH远程登录BeagleBone,甩掉串口线 乱玩BeagleBone4-安装ubuntu ...… 查看全部问答> |




