拒绝粗制滥造 只做精选资源
提示:由于该资料非本人设计,且个人精力有限,无法做到释疑和讲解答,小白勿拍!
stm32真实企业项目,包含源码,原理图设计和pcb。该项目是企业级产品的要求开发的,完整源码带注释。这是一个锅炉的控制器,有流程图和程序协议的介绍,也有项目对应的pcb原理图。项目涉及文件系统,sd卡驱动,多路AD采集,modbus通信协议,CRC校验,I2C,SPI flash等等。是一个完整的企业项目,正常运行。
类型:文件夹
大小:12.51MB
位置:我的资源>嵌入式项目>STM32真实项目(锅炉控制器)
7:如实际温度低于设定下限,并且不低于设定上限,将此状态保持。依次进行IO输出
8:如实际温度大于等于设定上限,并将状态复位,依次停止IO。
10依次输出:如启功能开启,按触摸屏指定时间,依次进行1到12输出。
10依次停止:如启功能开启,按触摸屏指定时间,依次停止1到12。
A:峰平谷,自定文,通过改寄疗器状态进行切换(ON为自定义,OFF为峰平谷)。
峰平谷中,定义峰平段时间后,通过开启使该段生效。同时,还有峰平谷的
下表是ASCII 协议和RTU 协议进行的比较:
协议|开始标记|结束标记|校验|传输效率|程序处理
—|—|—|—|—|—
ASCII|冒号(冒号)|CR,LF|LRC|低|直观,简单,易调试
RTU|无|无|CRC|高|不直观,稍复杂
通过比较可以看到,ASCII 协议和RTU 协议相比都有开始和结束标记,因此在进行程序处理时更方便.而且由于传输的都是可见的ASCII 字符,所以进行校验时也更加的直观.另外它的LRC 校验也比较容易.但是因为它传输的都是可见的ASCII 字符,RTU 传输一个十六进制数0xF9,ASCII 就需要传输“F”和“9”的ASCI 码0x39 和0x46 2个字符,这样它的传输的效率比较低.所以一般来说,如果所需要传输的数据比较大,最好使用RTU 协议.
下面对这两种协议的校验进行一下介绍.
1. LRC 校验
LRC 域是一个包含一个8 位二进制数的字节.LRC 值的计算和前述消息中计算LRC.并将它接收到消息中.LRC 域中的值是传输数据中按字节计算的LRC.如果两者不等,说明有错误.
LRC 校验比较简单,它在ASCII 协议中使用,检验了传输域中除开始的冒号及结束的回车换行外的内容.它仅仅是把每一-需要传输的数据按字节相加取反加1 即可.下面是它的VC 代码:
BYTE GetCheckCode(const char *pSendBuf, int nEnd) //获得校验码
{
BYTE byLrc = 0;
char pBuf[4];
int nData = 0;
for(i=1; i<end; i+=2) //i初始为1, 1开始“开始标记”冒号
{
//每两个需要发送的ASCII 码转换为一个十六进制数
pBuf[0] = pSendBuf[i];
pBuf[1] = pSendBuf[i+1];
pBuf[2] = ”;
sscanf(pBuf,”%x”, &nData);
byLrc += nData;
}
任何人访问、浏览本淘宝店铺,购买或未购买宝贝,即承认已经阅读,理解并同意接受本使用条款约束,并遵守所有适用的法律和法规,如您不同意本使用条款,请勿购买或者停止访问.
本店出售所有素材版本均归原作者所有,店里的素材都是店主通过网络等公开渠道获得来的,版权归原作者或出版社所有.
本店不对所涉及的版权问题负法律责任.
所有资源均由免费公共网络整理而来,仅供学习和研究使用,请勿用于商业用途或盈利性用途,请勿公开发表.并请于下载后的24小时之内删除.如转售属于知识产权纠纷,如原作者、出版社觉得侵犯公司利益的话,请通知本店立即下架.
任何情况下,本淘宝店铺及相关人员对于访问或购买使用店铺宝贝引起的任何依赖本网站内容而作出的决定或采取的行动不承担任何责任;对访问或购买使用店铺宝贝而产生的任何直接的、间接的、处罚性的损失或其任何形式的损失包括但不限于业务中断,数据丢失或利润损失不承担任何责任,即使本淘宝店铺被明确告知可能发生上述损失.












