CC2541蓝牙学习——外设I/O

学习目标:I/O口的配置,掌握I/O外设功能及位置分布,寄存器“PERCFG”、“P2SEL”和“P2DIR”。

前面CC2541蓝牙学习——I/O口介绍过CC2541有21个I/O引脚,这些引脚可以作为通用I/O引脚,同时通过独立编程还可以作为外设I/O引脚用作ADC、串口、定时器调试接口。当设置为外设I/O时,需要将对应的寄存器位PxSEL置1,每个外设单元对应两组可以选择的I/O引脚,即“外设位置1”和“外设位置2”,如下表所示。

从表中我们可以看出整个P0口都可作为ADC使用,因此可以使用多达8个ADC输入引脚,但是同一时刻只有一个引脚的ADC工作,此时P0引脚必须配置为ADC输入。APCFG寄存器可以配置P0的某个引脚为一个ADC输入(模拟输入功能),相应的位置1则为ADC输入功能,这个寄存器的默认值选择端口0引脚为非ADC输入,即数字输入/输出;

串口USART0和USART1均有两种模式:异步UART模式和同步SPI模式,并且每种模式下对应的外设引脚有两种位置;

定时器1有5个捕获/比较通道;

定时器3和定时器4各有2个捕获/比较通道;

端口P2.1和P2.2可分别用于调试数据和时钟信号,当处于调试模式时,调试接口控制这些引脚的方向,并且在这些引脚上禁用上拉和下拉。

外设I/O位置的选择使用寄存器PERCFG来控制,PERCFG寄存器的定义如下表。

可以根据具体电路的引脚资源分配来选择外设的位置,例如设置串口USART0为位置1则

PERCFG &= ~0x01;

我们从I/O外设位置的分布可以看出,有些I/O位置是重叠的,我们可以通过寄存器P2SEL和P2DIR来设置优先级,这两个寄存器前面已经介绍过,是选择端口2引脚的I/O功能(通用I/O还是外设I/O)和方向(作为输入还是输出),由于P2端口只有5个引脚,剩下的寄存器位得到了充分的利用,看来还真是不浪费啊!

P2SEL寄存器主要用来设置端口1外设的优先级,P2DIR寄存器主要设置端口0外设的优先级,没有端口2的优先级设置寄存器,因为端口2的引脚功能比较单一。这两个寄存器的定义如下。

时间: 2024-10-12 18:12:44

CC2541蓝牙学习——外设I/O的相关文章

CC2541蓝牙学习——通用I/O口中断

学习目标:掌握中断使能寄存器IEN0.IEN1.IEN2,中断标志寄存器PxIFG.IRCON.IRCON2,端口中断触发沿控制寄存器PICTL CC2541有18个中断源,每个中断源都可以产生中断请求,这18个中断源如下 中断请求通过SFR寄存器IEN0.IEN1.IEN2使能或禁止,定义如下: 其中IEN0和IEN1可以位寻址,寄存器IEN2不可以位寻址 EA:1开总中断 IEN1.P0IE:P0端口中断使能 IEN2.P1IE:P1端口中断使能 IEN2.P2IE:P2端口中断使能 IEN

CC2541蓝牙学习——ADC

CC2541的ADC支持多达14位的模拟数字转换与高达12位的有效位数.它包括一个模拟多路转换器,具有多达8个各自可独立配置的通道,一个参考电压发生器.转换结果通过DMA写入存储器.还具有若干运行模式. ADC主要特性如下: 可选的抽取率,设置了7~12位的分辨率: 8个独立输入通道,可接受单端或差分信号: 参考电压可选为内部,外部单端,外部差分,或AVDD5: 产生中断请求: 转换结束时的DMA触发: 温度传感器输入: 电池测量功能. 图1 P0引脚上的信号可以作为ADC输入来使用.在下面,这

CC2541蓝牙学习——定时器1的捕获/比较功能

CC2541定时器1有5个捕获/比较通道,首先介绍什么是捕获和比较功能. 捕获通道: 设置的捕获开始的时候,CPU会将计数寄存器的值复制到捕获比较寄存器中并开始计数,当再次捕捉到电平变化时,这时 计数寄存器中的值减去刚才复制的值就是这段电平的持续时间,你可以设置上升沿捕获.下降沿捕获.或者上升沿下降沿 都捕获.捕获通道可以用来测量信号的频率周期或者波形的宽度,捕获通道类似于秒表的功能. 比较通道: 这里有两个单元:一个计数器单元和一个比较单元,比较单元就是个双缓冲寄存器,比较单元的值是可以根据不

CC2541蓝牙学习——定时器1自由运行模式

学习目标:定时器1的自由运行模式 CC2541有4个定时器,分别实现不同的功能,定时器1是一个独立的16位定时器,支持典型的定时/计数功能,比如输入捕获,输出比较和PWM功能.定时器1有5个独立的捕获/比较通道,每个通道定时器使用一个I/O引脚. 定时器1的功能如下: 五个捕获/比较通道 上升沿.下降沿或任何的边沿输入捕获 设置.清除或切换输出比较 自由运行.模或正技术/倒技术操作 可被1.8.32.128整除的时钟分频器 在每个捕获/比较和最终计数上生成中断请求 DMA触发功能 定时器包括一个

CC2541蓝牙学习——看门狗

看门狗是在软件跑飞的情况下CPU自恢复的一个方式,看门狗分为硬狗和软狗,硬狗就是由专门的看门狗硬件电路实现看门狗功能,看门狗芯片也比较多,比如DS1232,除了看门狗功能外还有电源电压监测功能.软狗就是由软件实现的看门狗功能,现在很多CPU都自带了软狗,很难说硬狗好还是软狗好,如果软狗够用,尽量使用软狗简化设计,看门狗说白了就是一个定时器!,当软件在选定的时间间隔内不能置位看门狗定时器(WDT),WDT就复位系统.看门狗可用于电噪声,电源故障或静电放电等恶劣工作环境或高可靠性要求的环境.如果系统

CC2541蓝牙学习——时钟设置

CC2541有四个振荡器,分别是: 32MHz外部晶振 16MHz内部RC振荡器 32kHz外部晶振 32kHz内部RC振荡器 由此可以看出,CC2541内部自带了振荡器,也就是说即使外部电路不接振荡器,CC2541也可以工作,答案是肯定的,但是作为无线RF收发,只能使用外部32MHz晶振,除非准备将CC2541当做一个普通的增强型51单片机来用,否者32MHz外部晶振是必不可少的,那么这4个晶振有什么区别和用途呢? 32MHz的外部晶振有两个作用:为内部时钟提供时钟源和用于RF收发器 16MH

CC2541蓝牙学习——定时器3和定时器4

定时器3和定时器4与定时器1功能类似,都有三种模式:自由运行模式.模模式.正计数/倒计数模式,都有输入捕获和输出比较功能,不同的是定时器3和定时器4是8位计数器,而定时器1是16位的,另外定时器3和定时器4只有2个通道,定时器多了一个模式:倒计数模式.由于定时器3和定时器4相似,下面以定时器3为例说明. 定时器3和定时器4是两个8位定时器,每个定时器有两个独立的捕获/比较通道,每一通道使用一个I/O引脚. 定时器3/4有以下特点: 两个捕获/比较通道: 设置,清除或切换输出比较: 每时钟可以被以

IOS BLE4.0蓝牙和外设连接和收发数据的流程

前言: 苹果在IOS 6系统之后开始支持BLE 4.0,iPhone4s,iPod 5,iPad 3等之后的机型开始内嵌BLE4.0硬件,因此在开发前请先确认你的开发环境符合上述要求,并且苹果在BLE4.0之后,对外部的连接设备已经不在需要MFI认证了,当然你的外设肯定得要有蓝牙4.0模块了 综述: 开发BLE4.0的App,你需要在你的项目里面导入框架: CoreBluetooth.framework 在需要使用到蓝牙的文件里面你需要导入头文件: #import <CoreBluetooth/

android蓝牙学习

学习路线 1 蓝牙权限 <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCAT