物联网项目零散内容杂记

项目实训学了很多东西,因为内容比较杂,以后未必用得到,所以不想整理了,随便记录一下


IAR开发环境安装
仿真器驱动
USB - 串口驱动
ZigBee协议栈 v2.51


IO 端口
PXSEL 功能寄存器
PXDIR 方向寄存器 0输入1输出
PXINP 端口模式寄存器 (0上拉1下拉,三态)

上拉高电平(470-10k),下拉至地(1k-100k)


中断优先级
低优先级不能中断高优先级的
中断不能中断自己

EA 管理所有中断使能,有中断为1

中断标志(寻找中断标志),自动置1,结束需要清0。硬件清0,建议软件清0

PICTL:中断触发方式(0上升沿或者1下降沿触发)

中断函数编写
中断向量,中断的入口
中断服务程序
#pragma vector = P1INT_VECTOR
__interrupt void P1()
{
/*****************
//代码
*****************/
}


Task
楼道灯的控制,采用光敏传感器的数字端,根据光的强弱,打开或关闭LED1
https://www.cnblogs.com/ALittleBee/p/7072927.html


振荡器和时钟

内部16M时钟源,外部32

CLKCONCMD //时钟设置寄存器,只能写不能读
CLKCONSTA // 时钟状态寄存器,只能读不能写

void Set_32MHZ(void)
{
CLKCONCMD &= ~0x40; //系统时钟源为32MHZ晶振;
while(CLKCONSTA & 0x40); //等待时钟稳定;
CLKCONCMD &= ~0x47; //系统主时钟频率:32MHZ;
}


串口
1 两个串口
2 每个串口两个位置
3 流控制
4 波特率
起始位 8位数据 校验位 停止位(普遍10位)

RS232通讯:遵循RS232电平
RS232H:-5V~ -15V
RS232L:+5V-- +15V
-5V~ +5V RS232电平的盲区

2:接受 3:发送 5GND

RTS RI
U0DBUF = 0x33
TEMP = U0DBUF

起始位低电平,结束位高电平

串口相关寄存器
UxCSR: USARTx的控制和状态寄存器。
UxUCR: USARTx的UART控制寄存器。
UxGCR: USARTx的通用控制寄存器。
UxDBUF: USARTx的接收/发送数据缓冲寄存器。
UxBAUD: USARTx的波特率控制寄存器。

串口初始化步骤
1:设置时钟频率(CLKCONCMD)
2、设置串口位置(PERCFG)
3、设置串口工作方式(U0CSR)
4、设置波特率(U0GCR、U0BUAD)
5、清除发送、接收中断标志(UTX0IF、URX0IF)
6、串行中断使能(URX0IE)
7、总的中断使能(EA)

UxDBUF: USARTx的接收/发送数据缓冲寄存器。
串口发送字符函数
串口接收字符(中断实现)


Task
串口调试助手,发送命令打开LED1,并向计算机发送LED1的状态


CC2530 AD转换

1、有12个外部输入的AD 3个内部输入
2、P0口AD输入P0.0-P0.7 单输入
3、分辨率7位8、10、12

先读高8位,读低8位 后会清零

分辨率----实际分辨率
最高位为符号位(2的补码形式)


Task
利用AD采集光的强度,控制LED灯的强弱

利用温湿度传感器DHT11采集温度,显示在LCD(5110LCD)上,通过串口发送到计算机上

https://blog.csdn.net/qq_21990661/article/details/81043121


Task
利用气体传感器,采集甲烷等可燃气体的浓度,并设定门限利用蜂鸣器报警
并把采集的数据在LCD上显示和发送到计算机上

蜂鸣器
电压驱动–J6


ZIGBEE 介绍
ZSTACK 协议栈介绍
协议栈下串口使用
协议栈的才串口使用


绑定 GenericApp
数据收发led关闭 SampleApp

温度收发led打开 SimpleApp


APP
HAL
MAC 不能修改
MT 通讯
NWK无线网络
ZMAIN 主函数入口

事件任务调度


修改信道,避免干扰

终端----路由—协调器


Linux 常用命令

hostname 查看主机名
ifconfig IP信息
netstat -ntlp 网络端口
cat /proc/cpuinfo查看CPU信息
ps aux 进程信息
ps aux |grep xxx 过滤
kill -9 进程ID 结束进程
ls -al 详细目录

(cdl)rwx r-x r-x 文件相关权限

touch filename
file 查看编译好的文件
file a.out

rm 删除文件
rm -rf 删除目录

find ./ -name file 查找文件
find ./ -name *.c

安装软件
sudo apt-get install git

下载源码编译安装(以nginx为例)
很多时候要使用sudo
下载源码

解压/指定路径
tar -zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0/
configure

–prefix=/usr/local/nginx
进行配置,执行配置文件,编译

生成makefile
make
make install

设置环境变量 或者 设置软连接
sudo gedit /etc/profile

https://blog.csdn.net/u013564742/article/details/81746335

env 查看是否生效
配置软连接
配置软连接后,以后启动nginx直接输入nginx即可。配置方法是直接输入命令行:
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

reboot 重启系统

su 切换用户

启动 nginx

停止,发送信号 nginx -s stop


Makefile

在Windows下开发程序有很好的开发工具VS,在Linux下常用Qt

Makefile 定义整个工程的编译规则,实现自动化编译。

make命令,解释Makefile中的指令

编译过程:编写代码–预处理(引入头文件)–生成目标文件
Makefile的规则:
target…:prerequisite(条件)…
command

交叉编译器(Linux Ubuntu编译程序–在开发板上运行)

下载安装包

解压/解压路径(设置路径 -C 要大写)
sudo tar jxvf XXXXXX -C /usr/local/

配置环境变量
sudo gedit /etc/profile

将你的解解压好的目录添加进去
export PATH="$PATH:/usr/local/arm-2009q3/bin"

测试一下看成不成,或者直接使用env命令 查看环境变量有没有配好
env |grep PATH

如果没有的话,使用source让它立刻生效
source /etc/profile
现在应该就可以

在用户目录下创建一个.c 文件,可也先用gcc 编译一哈。
比如 gcc hello.c -o hello

现在使用arm 编译一哈,就成了
arm-none-linux-gnueabi-gcc hello.c -o arm_hello

然后就生成了两个版本的执行程序了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值