cc2541 gpio通用gpio和adc的使用
来源:互联网 发布:环信java需要哪些jar包 编辑:程序博客网 时间:2024/06/05 02:18
今天需要对cc2541 gpio和adc做几个测试,就学习了下怎么使用gpio和adc
1:ADC的使用
参考链接:http://www.cnblogs.com/chenzhao207/p/4539197.html
cc2541 p0口是adc口,读取代码如下
APCFG |= 1 << 0 ;//设置使用p0.0作为adc读入
uint16 vddvalue = HalAdcRead(HAL_ADC_CHANNEL_0, HAL_ADC_RESOLUTION_10);
HAL_ADC_CHANNEL_0指的是p0.0
HAL_ADC_RESOLUTION_10指的是分辨率,把电压分为511份
当cc2541供3.3V测试时,当p0.0输入3.3v电压时,vddvalue是511
当cc2541供3.3v测试时,当p0.0输入1.6v电压时,vddvalue是256
当cc2541供2.0v测试时,当p0.0输入2.0v电压时,vddvalue是511
当cc2541供2.0v测试时,当p0.0输入1.0v电压时,vddvalue是256
结论:cc2541电压内的电压基准是以供给cc2541供的电算的
2:GPIO的使用
参考链接:http://blog.sina.com.cn/s/blog_ba08e8e00102vg0d.html
cc2541 p1口可以作为普通gpio口,然后拉高拉低p1.0 1.1 1.2 1.3看效果
P1SEL = 0;//暴力设置为普通gpio
P1DIR &= ~(1 << 0);
P1DIR &= ~(1 << 1);//设置为输入
P1DIR &= ~(1 << 2);
P1DIR &= ~(1 << 3);
if(P1_0)//读p1.0
HalUARTWrite(HAL_UART_PORT_0,"p1.0 is high\r\n",strlen("p1.0 is high\r\n"));
else
HalUARTWrite(HAL_UART_PORT_0,"p1.0 is low\r\n",strlen("p1.0 is low\r\n"));
有一个问题是,p1.1和p1.3在我的代码里没办法被设置,可能是被占用的原因吧
结论:
当给cc2541供3.3v电压时,给gpio的电压必须大于2v才会被认为是高电平
当给cc2541供2.0v电压时,给gpio的电压大于1.5v就会被cc2541认为是高电压了
- cc2541 gpio通用gpio和adc的使用
- AU1200 GPIO的使用
- Sigmatel37xx GPIO的使用
- 6410的GPIO使用
- dm365 GPIO的使用
- 6410的GPIO使用
- GPIO 的使用
- DM642 GPIO的使用
- 6410的GPIO使用
- STM32的GPIO使用
- rt5350 gpio的使用
- DSP28335的GPIO使用
- cubieboard2 GPIO的使用
- Linux GPIO的使用
- 海思芯片.通用GPIO 使用篇
- 对通用输入输出GPIO的深入理解
- 对通用输入输出GPIO的深入理解
- 对通用输入输出GPIO的深入理解
- 资料链接
- BZOJ 1293: [SCOI2009]生日礼物 链表模拟
- Android通知栏消息(基本文字通知)
- 在Java Web项目中引入Mondrian多维分析框架
- docker配置文件
- cc2541 gpio通用gpio和adc的使用
- python 迭代器
- BaseServlet 的实现解析
- c++实验4-项目7
- 利用FFmpeg合成视频、提取视频帧
- Unity3D中C#使用指针(Unsafe)报错处理
- 线程池
- C++第四次实验
- Spark SparkBuildInfo set Several Variable Read From Propertity file at Once