zigbee控制ADAM4150
任务名称:zigbee节点控制ADAM4150
实验现象:通过zigbee节点上的节点控制ADAM
注意点:控制ADAM4150的波特率必须是9600,否则会出现错误
核心代码
1、寄存器配置
void init()
{
CLKCONCMD &=~0x40; //设置系统时钟源为32MHZ晶振
while(CLKCONSTA & 0x40); //等待晶振稳定为32M
CLKCONCMD &=~0x47; //设置系统主时钟频率为32MHz
PERCFG=0x00; //位置1,P0口
P0SEL =0x0c; //P0_2,P0_3用作串口
P2DIR =0xc0; //P0优先作为UART0
U0CSR |=0x80; //设置UART方式
U0GCR |=8; //设置波特率
U0BAUD |=59; //设置波特率 9600波特率
UTX0IF=0; //UART 0中断标志位初始置位0
}
2、串口发送
void SendString(char *Data,int len)
{
int i;
for(i=0;i<len;i++)
{
U0DBUF=*Data++;
while(UTX0IF==0);
UTX0IF=0;
}
}
3、ADAM4150数字量采集控制模块请求指令
void init(){CLKCONCMD &=~0x40; //设置系统时钟源为32MHZ晶振while(CLKCONSTA & 0x40); //等待晶振稳定为32MCLKCONCMD &=~0x47; //设置系统主时钟频率为32MHzPERCFG=0x00; //位置1,P0口P0SEL =0x0c; //P0_2,P0_3用作串口P2DIR =0xc0; //P0优先作为UART0U0CSR |=0x80; //设置UART方式U0GCR |=8; //设置波特率U0BAUD |=59; //设置波特率 9600波特率UTX0IF=0; //UART 0中断标志位初始置位0}
2、串口发送
void SendString(char *Data,int len)
{
int i;
for(i=0;i<len;i++)
{
U0DBUF=*Data++;
while(UTX0IF==0);
UTX0IF=0;
}
}
3、ADAM4150数字量采集控制模块请求指令
void SendString(char *Data,int len){int i;for(i=0;i<len;i++){U0DBUF=*Data++;while(UTX0IF==0);UTX0IF=0;}}
开启:01 05 00 13 FF 00 7D FF
| 地址码 | 功能码 | 起始地址 | 起始地址 | 开 | 读取数量 | CRC低位 | CRC高位 |
| 01 | 05 | 00 | 13 | FF | 00 | 7D | FF |
关闭:01 05 00 13 00 00 3C 0F
| 地址码 | 功能码 | 起始地址 | 起始地址 | 关 | 读取数量 | CRC低位 | CRC高位 |
| 01 | 05 | 00 | 13 | 00 | 00 | 3C | 0F |
备注:
1、起始地址为10,对应ADAM4150的DO0,11对应DO1,以此类推
2、根据前面要求产生的:地址码、功能码、起始地址、起始地址、开/关、读取数量后,使用”Crc16校验位工具“可以算出CRC低位、CRC高位
zigbee控制ADAM4150的更多相关文章
- 基于ZigBee的家居控制系统的设计与应用
基于ZigBee的家居控制系统的设计与应用 PPT简介:http://pan.baidu.com/s/1i38PC6D 摘 要 智能家居是未来家居的发展方向,其利用先进的网络技术.计算机技术和无线通 ...
- ZigBee技术简介
Zigbee的由来 在蓝牙技术的使用过程中,人们发现蓝牙技术尽管有许多优点,但仍存在许多缺陷.对工业,家庭自动化控制和遥测遥控领域而言,蓝牙技术显得太复杂,功耗大,距离近,组网规模太小等,……而工业自 ...
- Zigbee 与 WiFi 的区别
zigbee 在蓝牙技术的使用过程中,人们发现蓝牙技术尽管有许多优点,但仍存在许多缺陷.对工业,家庭自动化控制和遥测遥控领域而言,蓝牙技术显得太复杂,功耗大,距离近,组网规模太小等,……而工业自动化对 ...
- Metasploit的射频收发器功能 | Metasploit’s RF Transceiver Capabilities
https://community.rapid7.com/community/metasploit/blog/2017/03/21/metasploits-rf-transceiver-capabil ...
- [ZigBee] 16、Zigbee协议栈应用(二)——基于OSAL的无线控制LED闪烁分析(下)
说在前面:上一篇介绍了无线LED闪烁实现的OSAL部分,本篇介绍如何实现无线数据收发及数据处理: 上一篇是用SI跟着流程查看源码,我个人认为以架构的思维去了解代码能让人更清晰 ::ZMain.c程序入 ...
- [ZigBee] 13、ZigBee基础阶段性回顾与加深理解——用定时器1产生PWM来控制LED亮度(七色灯)
引言:PWM对于很多软件工程师可能又熟悉又陌生,以PWM调节LED亮度为例,其本质是在每个周期都偷工减料一些,整体表现出LED欠压亮度不同的效果.像大家看到的七色彩灯其原理也类似,只是用3路PWM分别 ...
- 手把手带你使用ZigBee——通过爱智控制EFR32,以及 Simplicity Studio 使用过程中注意事项
前言 兄弟们,我发现一个有意思的东西,我在爱智官网翻资料的时候,发现他们终于终于把官网文档的索引优化了!有一说一,真是方便不少,终于不再是一堆文档糊在一坨了. 另外我还发现他们居然做了一个EFR32的 ...
- zigbee学习之路(四):按键控制(中断方式)
一.前言 通过上次的学习,我们学习了如何用按键控制led,但是在实际应用中,这种查询方式占用了cpu的时间,如果通过中断控制就可以解决这个问题,我们今天就来学习按键控制的中断方式. 二.原理分析 传统 ...
- zigbee学习之路(三):按键的控制
一.前言 通过前一次的实验,相信大家都已经对cc2530程序的编写有了一定的认识,这次我们来操作和实验的是cc2530上的按键模块. 二.原理分析 我们先来看一下按键的原理图: 根据原理图我们可以得出 ...
随机推荐
- Part2-HttpClient官方教程-Chapter2-连接管理
2.1 连接持久性 建立从一个主机到另一个主机的连接的过程相当复杂,并且涉及两个端点之间的多个分组交换,这可能相当耗时.连接握手的开销可能很大,特别是对于小型的HTTP消息. 如果可以重新使用开放连接 ...
- 转 TCP中的序号和确认号
在网络分析中,读懂TCP序列号和确认号在的变化趋势,可以帮助我们学习TCP协议以及排查通讯故障,如通过查看序列号和确认号可以确定数据传输是否乱 序.但我在查阅了当前很多资料后发现,它们大多只简单介绍了 ...
- ms17010利用失败解决一则
没有反弹得到session并且提示如下: [-] 10.0.131.2:445 - Service failed to start, ERROR_CODE: 216 换了一个payload set p ...
- linux驱动基础系列--Linux 串口、usb转串口驱动分析
前言 主要是想对Linux 串口.usb转串口驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如字符设备驱动.平台驱动等也不进行详细说明原理.如果有任何错误地方,请指出, ...
- Win10默认图片查看器更改
Win10自带的图片查看器不是很习惯,其背景乌漆嘛黑,宽扁的额头让人想起了黑边火腿肠手机,无法直视.怀念Win7和Win8.1的图片查看器,一个鼠标滚轮缩放自如的酸爽感觉.但却遗憾地发现,并不能直观地 ...
- 网站服务器压力Web性能测试(3):http_load:测试web服务器的吞吐量与负载
1.http_load是国外一个博主写的一个基于Linux的性能测工具,小巧轻便,解压缩后不到100k,下载安装方法: wget https://acme.com/software/http_load ...
- 尽量用const,enum,inline代替define
在读<Effective C++>之前,我确实不知道const,enum,inline会和define扯上什么关系,看完感觉收获很大,记录之. define: 宏定义. 在编译预处理时,对 ...
- MYSQL 索引无效和索引有效的详细介绍
1.WHERE字句的查询条件里有不等于号(WHERE column!=...),MYSQL将无法使用索引 2.类似地,如果WHERE字句的查询条件里使用了函数(如:WHERE DAY(column)= ...
- HDU-1151
Air Raid Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- numpy及scipy的使用
numpy的使用 把list A转换为numpy 矩阵 np.array(A) np.array(A, 'int32') numpy加载txt文件里面的矩阵 matrix = np.loadtxt(t ...