CC2640R2F+W5500SPI通信(1)

使用的开发板是TI公司的蓝牙BLE CC2640R2F,主要研究的是CC2640R2F与以太网模块W5500的spi通信,使用的代码调试软件为CCS,
将原本在51单片机上运行的W5500例程,移植到CC2640R2F的开发板上,具体一直步骤如下:
(1)将w5500在51上的例程拷贝到CC2640R2F的驱动的uartecho目录下:
E:\ti\simplelink_cc2640r2_sdk_2_30_00_28\examples\rtos\CC2640R2_LAUNCHXL\drivers\uartecho


将51中的w5500 主程序主程序改为SPIW5500.c,不该的话将会在例程运行时与CC2640R2F运行的main_tirtos.c主程序发生冲突,导致程序运行不了。
(2)打开CC2640R2F的uartecho例程:

(3)将刚刚拷贝到CC2640R2F的驱动的uartecho目录下的w5500驱动函数库与main程序也就是SPIW5500和w5500.h添加到uartecho例程下:



一定要雨泽ECHLIPSE_HOME,
同样的操作将另两个程序添加到uartecho例程下:

点击运行例程我们会发现w5500的驱动函数库会报出很多的错误

#29 expected an expression
这个错误与CCS软件无关,是一种表达式错误,因为原本51的例程硬件连接不需要定义引脚的功能号,蓝牙C2640R2F需要定义引脚的功能号,这些引脚在协议中都有定义,我们只需将原本51中SPI对应的引脚换成CC2640R2F的spi引脚,在定义好他的功能号就好。

在w5500.h中将对应的引脚换成CC2640R2F的管脚号:

然后在驱动函数库中添加这些管脚的宏定义

在写管教的功能号之前一定要定义好管脚的输入输出功能:sclk;cs mosi,miso 的输入输出功能为输入定义为:
GPIO_setOutputEnableDio(IOID_10, GPIO_OUTPUT_ENABLE);
GPIO_setOutputEnableDio(IOID_20, GPIO_OUTPUT_ENABLE);
GPIO_setOutputEnableDio(IOID_9, GPIO_OUTPUT_ENABLE);
GPIO_setOutputEnableDio(IOID_8, GPIO_OUTPUT_DISABLE);
将原本在51中的时钟SCLK,使能CS,主机发送从机接收MOSI. 主机接收从机发送MISO 对应的功能语句改掉就可以了:

W5500_SCLK=0;改为 HWREG( GPIO_BASE + GPIO_O_DOUTCLR31_0) = (1<<10 );
W5500_SCLK=1;改为 HWREG( GPIO_BASE + GPIO_O_DOUTSET31_0) = (1<<10 );
W5500_MOSI=0; 改为 HWREG( GPIO_BASE + GPIO_O_DOUTCLR31_0) = (1<<9 );
W5500_MOSI=1;改为 HWREG( GPIO_BASE + GPIO_O_DOUTSET31_0) = (1<<9 );
W5500_SCS=0;改为 HWREG( GPIO_BASE + GPIO_O_DOUTCLR31_0) = (1<<20 );
W5500_SCS=1;改为 HWREG( GPIO_BASE + GPIO_O_DOUTSET31_0) = (1<<20 );
W5500_RST=0;改为 HWREG( GPIO_BASE + GPIO_O_DOUTCLR31_0) = (1<<13 );
W5500_RST=1;改为 HWREG( GPIO_BASE + GPIO_O_DOUTSET31_0) = (1<<13 );

注:

务必将此处的MISO
rByte<<=1;
rByte|=W5500_MISO;
改为宏之前定义中的RX接收语句:
rByte<<=1;
if( RX ) rByte |= 0x01;

最后将SPIW5500.C中的主函数int main(void)改为void *mainThread(void *arg0 )
再次点击运行程序完美运行,用逻辑分析仪进行抓包可以清楚地看到与51的抓包波形是一样的,因为51的板子上MISO引脚p3_4连接着时钟因此我们可以看到在逻辑分析仪上的MISO 波形,而CC2640R2F的MISO:IOID_8 与插针J2连接没有预期连接的芯片所以他不显示波形,只需将CC2640R2F与W5500对应引脚进行连接就可以看到MISO的波形了。
第一次写博客,写的不好望大家见谅。

蓝牙低功耗CC2640R2F+W5500SPI通信相关推荐

  1. 【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)

    转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50515359 参考 :  -- 官方文档 : https://develope ...

  2. 【Android】BLE:蓝牙低功耗基础

    一.蓝牙概述 蓝牙是一种短距离通信的无线电技术.特点: 1.分散式网络结构 2.点对点或多点通信 3.快跳频和短包技术 4.工作在2.4GHz ISM(工业,科学,医学缩写)频段 5.时分全双工传输 ...

  3. 蓝牙低功耗profile:ATT和GATT

    原文:https://epx.com.br/artigos/bluetooth_gatt.php 蓝牙4.0版本推出了低功耗规范,引入了两个核心协议:ATT(Attribute Protocol)和G ...

  4. 优化蓝牙低功耗设备中的功耗 伦茨科技

    在电池供电产品中,电流消耗或更普遍的能源使用是主要关注点.优化电流消耗可以延长电池寿命,因此可以生产出更好的产品.本文讨论了如何优化电流消耗. 讨论 影响蓝牙低功耗(BLE)设备中电流消耗的两个主要因 ...

  5. MASA MAUI Plugin 安卓蓝牙低功耗(一)蓝牙扫描

    项目背景 MAUI的出现,赋予了广大Net开发者开发多平台应用的能力,MAUI 是Xamarin.Forms演变而来,但是相比Xamarin性能更好,可扩展性更强,结构更简单.但是MAUI对于平台相关 ...

  6. 蓝牙协议分析(3)_蓝牙低功耗(BLE)协议栈介绍

    原文链接:蓝牙协议分析(3)_蓝牙低功耗(BLE)协议栈介绍 系列索引:蓝牙协议分析(1)_基本概念 蓝牙协议分析(2)_协议架构 目录 1. 前言 2. Why 3. How和What 4. Phy ...

  7. 【BLE】蓝牙低功耗

    [BLE]蓝牙低功耗 1. 概念 功率: P = W/t(定义式),单位:瓦特(W),表示做功快慢(消耗电能快慢)的物理量 P = UI(计算式),所有电路里都可以用这个公式计算 1度电 = 1kW· ...

  8. c# 低功耗蓝牙_C#建立从笔记本电脑内部蓝牙4.0到蓝牙低功耗(BLE)外设的流

    我正在尝试编写一个连接到蓝牙低功耗设备(BLE)的程序,然后在更新或给定间隔内读取特征. 我的外设是德州仪器CC2540 BLE设备. 然而,这使用了加密狗,我的任务是使用内部蓝牙4.0调制解调器(稍 ...

  9. 蓝牙低功耗音频技术--目录大纲

    复制转载请注明出处 蓝牙低功耗音频技术 近期看到SIG网站推荐的一本书<Introducing Bluetooth® LE Audio>,作者为Nick Hunn(尼克·胡恩,以前有过短距 ...

最新文章

  1. 利用jmap和MAT等工具查看JVM运行时堆内存
  2. mac pdf去水印_今天才知道,Word、PDF文档去水印这么简单!一键水印说拜拜
  3. java初学课程_作为java新手应该学习什么课程
  4. mysql主键用完了怎么办_MySQL 自增 ID 用完了怎么办?
  5. suse防火墙mysql远程配置_CentOS 6.8 配置防火墙,开放8080端口
  6. SpringBoot-JPA删除不成功,只执行了查询语句
  7. React学习笔记—表单
  8. linux压缩比,Linux下各压缩方式测试(压缩率和使用时间)
  9. RabbitMQ八:交换机类型Exchange Types--Topic介绍
  10. 【优化算法】可变步长LMS算法(VSS-LMS)【含Matlab源码 317期】
  11. TeamViewer开机自启动实现在远程使用时重启远程计算机
  12. 2022电力电缆考试题及答案
  13. python NLP中文近义词
  14. 基于镶嵌数据集制作地貌晕眩图
  15. 微信小程序自定义状态栏组件,提取自(colorui)
  16. android intent传文件夹,Android之intent传值篇
  17. 吴恩达深度学习学习笔记——C1W2——神经网络基础——练习题
  18. Liunx下Intel无线网卡驱动安装
  19. javafx 教程_Swing和JavaFX:使用JFXPanel
  20. 基于Javaweb的问卷调查系统

热门文章

  1. Java基础之Map类
  2. 3个月零基础入门数据分析师是一件完全可能的事!
  3. Java、大数据开发学习要点(持续更新中...)
  4. 故地重游,熟悉又陌生。
  5. i386 和amd64
  6. 【JS】设置、获取、删除标签属性以及H5自定义属性
  7. 迷茫,迷茫在迷茫中!
  8. 用 Python 在 Excel 中画出蒙娜丽莎
  9. 什么是i妇,为什么有用
  10. 想不想修真鸿蒙原液,想不想修真:新版本下如何偷过任务?有了这个神器就能解放双手...