码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-05-11 23:34:29      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

学习目标: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的引脚功能比较单一。这两个寄存器的定义如下。
 
技术分享

技术分享

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

标签:

原文地址:http://www.cnblogs.com/chenzhao207/p/4495695.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!