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上的按键模块. 二.原理分析 我们先来看一下按键的原理图: 根据原理图我们可以得出 ...
随机推荐
- SQL注入之逗号拦截绕过
目前所知博主仅知的两个方法 1.通过case when then 2.join [一]case when then mysql,,,,,,, ) ) end; +----+-----------+-- ...
- js作用域与上下文
作用域:与调用函数,访问变量的能力有关 作用域分为:局部和全局(在局部作用域里可以访问到全局作用域的变量,但在局部作用域外面就访问不到局部作用里面所设定的变量) 上下文:与this关键字有关 是调用当 ...
- LeetCode 19 Valid Parentheses
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the inpu ...
- python基础===jieba模块,Python 中文分词组件
api参考地址:https://github.com/fxsjy/jieba/blob/master/README.md 安装自行百度 基本用法: import jieba #全模式 word = j ...
- Python Matplotlib图表汉字显示成框框的解决办法
http://blog.sina.com.cn/s/blog_662dcb820102vu3d.html http://blog.csdn.net/fyuanfena/article/details/ ...
- ue4.3正式版源码链接
ue4.3正式版源码链接 http://tieba.baidu.com/p/3170253742
- HDU 6112 今夕何夕 蔡勒公式
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6112题意:中文题目 分析:关键点在与如何计算一个日期是星期几,这个可以通过蔡勒公式来计算.基姆拉尔森计 ...
- tomcat8特性
作者:Eilen,转载需注明.博客主页:http://www.cnblogs.com/Eilen/ 一.Apache Tomcat 8介绍 Apache Tomcat 8RC1版于前几日发布.它 经过 ...
- 全国省市区数据SQL - 省市区
转载:https://www.cnblogs.com/flywind/p/6036801.html
- Nginx事件管理机制-epoll
epoll的最大好处在于他不会随着被监控描述符的数目的增长而导致效率极致下降. select是遍历扫描来判断每个描述符是否有事件发生,当监控的描述付越多时,时间消耗就越多,并且由于系统的限制selec ...