是打发斯蒂芬
Posted xtark
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是打发斯蒂芬相关的知识,希望对你有一定的参考价值。
int main(void) { uint16_t a; uint8_t key,cnt; //XRT1初始化 AX_Init(115200); printf("***红外接收 例程***\\r\\n\\r\\n"); printf("请对着红外接收头按遥控器\\r\\n"); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2 //红外接收初始化 AX_IR_Init(); while (1) { a = AX_IR_ReadKeyStatus(); key = a&0x00FF; // 取出键值 cnt = ((a&0x7F00)>>8); //取出按键次数 if(a) { if(a < 0x8000) //按键未抬起 { printf("Key = %X Count = %d \\r\\n", key, cnt ); } else { printf("Key = %X Count = %d END\\r\\n", key, cnt); } } AX_Delayms(100); } }
int main(void) { uint16_t a; uint8_t key,cnt; //XRT1初始化 AX_Init(115200); printf("***红外接收 例程***\\r\\n\\r\\n"); printf("请对着红外接收头按遥控器\\r\\n"); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2 //红外接收初始化 AX_IR_Init(); while (1) { a = AX_IR_ReadKeyStatus(); key = a&0x00FF; // 取出键值 cnt = ((a&0x7F00)>>8); //取出按键次数 if(a) { if(a < 0x8000) //按键未抬起 { printf("Key = %X Count = %d \\r\\n", key, cnt ); } else { printf("Key = %X Count = %d END\\r\\n", key, cnt); } } AX_Delayms(100); } }
修订记录
版本 |
日期 |
修改记录 |
V1.0 |
2018-1-1 |
创建文档 |
版权申明
本教程版权归属塔克科技所有,并保留一切权力。非经(书面形式)同意,任何单位及个人不得擅自摘录或修改本手册部分或全部内容,违者我们将追究其法律责任。
感谢您购买塔克科技产品,在使用产品之前,请仔细地阅读该手册并且确保知道如何正确使用该产品,不合理的操作可能会损坏开发板,使用过程中随时参考该手册以确保正确使用。
此手册不断更新中,建议您使用时下载最新版本。
塔克官网:
塔克社区:
塔克博客:
本节教程介绍X-CTR100控制器的TF卡功能,并通过开源Fatfs文件系统,实现对TF卡上文件的操作。
-
原理介绍
SD卡(Secure Digital Memory Card)在我们生活中已经非常普遍了,控制器对SD卡进行读写通信操作一般有两种通信接口可选,一种是SPI 接口,另外一种就是SDIO 接口。X-CTR100控制器通过SPI接口与TF连接。
SD卡很少直接对数据进行读写,SD卡一般用来存放文件,所以都需要加载文件系统到里面。常见的windows 下的文件系统格式包括FAT32、NTFS、exFAT等。
FatFs是面向小型嵌入式系统的一种通用的FAT文件系统。它完全是由AISI C 语言编写并且完全独立于底层的I/O介质。因此它可以很容易地不加修改地移植到其他的处理器当中,如8051、PIC、AVR、SH、Z80、H8、ARM等。FatFs支持FAT12、FAT16、FAT32 等格式,把FatFs 文件系统代码移植到工程之中,就可以利用文件系统的各种函数,对SD卡上的文件进行读写操作了。
FatFs 文件系统的源码可以从官网下载:
http://elm-chan.org/fsw/ff/00index_e.html
-
FatFs文件系统移植
本教程移植的版本为R0.12b版本。解压源码后可以得到两个文件夹:doc和src。doc里面主要是对FATFS的介绍,而src里面是我们需要的源码,包含文件如下所示。
ff.h :文件系统实现头文件,定义有文件系统所需的数据结构
diskio.h :底层驱动头文件,就一些状态宏的定义和底层驱动函数的申明
integer.h:仅实现数据类型重定义,增加系统的可移植性
ffconf.h :文件系统配置
ff.c :文件系统实现。
diskio.c 底层驱动
option可选的外部功能(比如支持中文等)
FatFs的移植,一般只需要修改2个文件,即ffconf.h和diskio.c。
ffconf.h:这个头文件包含了对FatFs 功能配置的宏定义,通过修改这些宏定义就可以裁剪FatFs 的功能。如需要支持简体中文,需要把ffconf.h 中的_CODE_PAGE的宏改成936 并把上面的cc936.c 文件加入到工程之中。FATFS模块的所有配置项都是存放在ffconf.h里面,我们可以通过配置里面的一些选项,来满足自己的需求。
diskio.c文件是移植的核心,需要进行底层驱动编写,包括几个接口函数。
工程架构
具体源码参考工程文件。
-
例程设计
本例程使用定时器输入捕获功能实现了遥控器红外解码,解码后的键值和按键次数通过串口输出显示。
- 硬件说明
本例程需要如下硬件资源:
- LED灯(绿)
- 红外遥控接收头
- NEC编码红外遥控器
红外接收部分硬件电路
无须特殊硬件连接,演示实物图如下。
- 软件说明
本例程实现循环读取红外按键键值和按键次数,并通过串口显示。
主程序代码如下。
int main(void) { uint16_t a; uint8_t key,cnt;
//XRT1初始化 AX_Init(115200); printf("***红外接收例程***\\r\\n\\r\\n"); printf("请对着红外接收头按遥控器\\r\\n");
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
//红外接收初始化 AX_IR_Init();
while (1) { a = AX_IR_ReadKeyStatus();
key = a&0x00FF; // 取出键值 cnt = ((a&0x7F00)>>8); //取出按键次数
if(a) { if(a < 0x8000) //按键未抬起 { printf("Key = %X Count = %d \\r\\n", key, cnt ); } else { printf("Key = %X Count = %d END\\r\\n", key, cnt); } }
AX_Delayms(100); } } |
本例程应用X-API函数,关于X-API函数的说明,请参考《X-CTR100开发指南》。
- 实现效果
两个数据数据互相发送接收,打开串口助手即可查看接收的数据,如下所示。
以上是关于是打发斯蒂芬的主要内容,如果未能解决你的问题,请参考以下文章