位操作 写读同步(无线) (语音1760 1700) ( 无线24l01)
- **************************************************************************
- * 函数原型: unsigned char ISD_SendData(unsigned char dat);
- * 功 能: 向CPU 发送&读回数据 (用于语音1760 1700)
- **************************************************************************/
- unsigned char ISD_SendData(unsigned char dat) // 保证外部SS=1
- {
- unsigned char i,j,BUF_ISD=dat;
- SCK=1; // 初始条件
- SS=0; // 使能ISD1700 的SPI
- for(j=4;j>0;j--) // 延迟
- {;}
- for(i=0;i<8;i++) // 发送&接收8 位数据
- {
- SCK=0;
- for(j=2;j>0;j--) // 延迟
- {;}
- if(BUF_ISD&0x01) // 将BUF_ISD 中的最低位数据发送到MOSI 端口
- MOSI=1;
- else
- MOSI=0;
- BUF_ISD>>=1; // BUF_ISD 右移一位
- if(MISO) // 逐个接收MISO 端口的数据。将数据存在BUF_ISD
- //的最高位
- BUF_ISD|=0x80;
- SCK=1;
- for(j=6;j>0;j--) // 延迟
- {;}
- }
- MOSI=0;
- return(BUF_ISD); //返回接收到的数据
- }
- /*无线24l01*/
- unsigned char SPI_RW(unsigned char byte)
- {
- unsigned char bit_ctr;
- for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit
- {
- if(byte & 0x80)
- RF_MOSI = 1;
- else
- RF_MOSI = 0;
- byte = (byte << 1);
- RF_SCK = 1;
- if(RF_MISO) byte |= 1;
- RF_SCK = 0;
- }
- return(byte); //返回接收到的数据
- }
位操作 写读同步(无线) (语音1760 1700) ( 无线24l01)的更多相关文章
- python的读写和写读操作
# 读写操作 (读写操作是正常的)f = open('log',mode='r+',encoding='utf-8') # log是文件名 print(f.read()) f.write(" ...
- NB-IoT无线通信模块与Lora无线通信协议技术分析与前景展望
物联网的快速发展对无线通信技术提出了更高的要求,专为低带宽.低功耗.远距离.大量连接的物联网应用而设计的LPWAN(low-power Wide-Area Network,低功耗广域网)也快速兴起.物 ...
- C 常用的输入输出 栈 哈希 文件写读 实现 字符串处理
#include "stdafx.h"#include <stdio.h>#include <string.h>#include <stdlib.h& ...
- py库: xlwt 、xlrd (写读EXCEL文件)
写EXCEL文件 # -*- coding: utf-8 -*- import xlwt book = xlwt.Workbook(encoding = "utf-8", styl ...
- 常用位操作,读8位 I2C 1302 18B20 .
/*1302*/ unsigned char DS1302OutputByte(void) //实时时钟读取一字节(内部函数) { unsigned char i; for(i=8; i>0; ...
- iOS-plist文件的写读
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"xiaoli" ofType:@"plist ...
- volatile写读的内存语义
1,当写一个volatile变量时,JMM(java内存模型)会把该线程本地内存中的所有共享变量刷新到主内存中去 2,当读取一个volatile变量时,该线程会将本地内存置为无效,线程将从主内存中读取 ...
- git远程写协作同步
1:创建一个要提交的文件2 git init 初始化 3 git remote add origin https://github.com/maohongli/cang.git 建立远程连接4 git ...
- Aircrack-ng无线审计工具破解无线密码
Aircrack-ng工具 Aircrack-ng是一个与802.11标准的无线网络分析的安全软件,主要功能有网络探测.数据包嗅探捕获.WEP和WPA/WPA2-PSK破解.Aircrack可以工作在 ...
随机推荐
- char[]转换成wchar_t的转换方法(GNU Libc规定wchar_t为32位)
wchar_t是C/C++的字符数据类型,是一种扩展的字符存储方式,wchar_t类型主要用在国际化程序的实现中,但它不等同于unicode编码.unicode编码的字符一般以wchar_t类型存储. ...
- Delphi 的动态数组
传统的Pascal 语言其数组大小是预先确定的,当你用数组结构声明数据类型时,你必须指定数组元素的个数.专业程序员也许知道些许动态数组的实现技术,一般是采用指针,用手工分配并释放所需的内存. Delp ...
- 将dll放进exe[.Net]
原文:将dll放进exe[.Net] 两种方案: 1.使用ILMerge工具. 缺点:需离开工程,使用第三方工具(ILMerge). 2.将dll作为Resource放进exe,exe执行时动态加载( ...
- php 前台数据显示
<pre name="code" class="html"> public function show(){ echo "访问了index ...
- HDU 1551 Cable master
题解:很显然的二分检索,在算法艺术上看过原题,不过这里要注意精度: #include <cstdio> int n,m; ]; bool test(double x){ ,i; ;i< ...
- IPhone多视图切换
处理IPhone多个view切换是我们常遇到的问题,接下来有个比较实用的方法: 而且还附有创建空项目,内存告急处理和动画效果的实现! 具体步骤: 1.创建一个空的项目,然后添加一个ViewContro ...
- JS中onload的各种使用
1.最简单的调用方式 直接写到html的body标签里面,如: <html> <body onload="func()"> </body> &l ...
- GCD详细使用笔记
第一.通过GCD创建队列(Queue) 创建队列方式有以下几种: 1.创建一个串行队列: dispatch_queue_t queue =dispatch_queue_create("串行队 ...
- JavaSE学习总结第12天_API常用对象2
12.01 Scanner的概述和构造方法原理 Scanner类概述:JDK5以后用于获取用户的键盘输入 构造方法:public Scanner(InputStream source) publi ...
- Zend Studio 如何配置本地apache服务器使用xdebug调试php脚本
本地环境搭配: apache 2.2 安装位置:D:/program files/Apache Software Foundation/Apache2.2 php 5.2.10 安装位置:C:/php ...