主题中讨论的其他器件: MSP430FR2532、 MSPWARE、 MSP430FR2522、 MSP430FR2512
工具/软件:Code Composer Studio
您好!
我不熟悉 MSP430系列。 在我的项目中、我确实需要使用超低功耗微控制器系列之一。 我有 一个 MSP430FR2311开发板。
我想使用几个引脚作为 电容式接近检测和 /或电容式触摸感应。 在数据表的器件概述中、提到了"所有 I/O 均为电容式触控 I/O "。 我是否可以使用任何库或示例代码?
谢谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好!
我不熟悉 MSP430系列。 在我的项目中、我确实需要使用超低功耗微控制器系列之一。 我有 一个 MSP430FR2311开发板。
我想使用几个引脚作为 电容式接近检测和 /或电容式触摸感应。 在数据表的器件概述中、提到了"所有 I/O 均为电容式触控 I/O "。 我是否可以使用任何库或示例代码?
谢谢
您好!
我们建议将 CapTIvate 器件用于电容式触控应用。 CapTIvate 是 TI 的新型触控技术、可提供更高的性能和更低的功耗。
如果您仍然想使用 FR2311、 请查找代码示例 attached.e2e.ti.com/.../msp430fr231x_5F00_pinosc_5F00_02.c
e2e.ti.com/.../msp430fr231x_5F00_pinosc_5F00_01.c
此致、
灵
您好、Ling、
感谢您的评论。
我制作了 MSP430 FR 2532的开发板。 我还订购了 CapTIvate-FR2632开发套件、以了解其工作原理。
但我的最终目标是对 MSP430FR2532进行编程、以进行电容式测量。 下面是我所做的工作:
1- 我使用 CapTIvateDesignCenter 应用程序生成 CCS 代码、然后将代码导入 CCS。 (一个自触摸按钮(BTN00)连接到 CAP.02端口)。 我只有一个 RX00。
2 -这是生成的代码:
----------------------------------------------------
#include //通用 MSP430器件包括
#include "driverlib.h"// MSPWare 驱动程序库
#include "captate.h"// CapTIvate 触控软件库
#include "CAPT_App.h"// CapTIvate 应用程序代码
#include "CAPT_BSP.h"// CapTIvate EVM 板级支持包
void main (void)
{
//
//初始化 MCU
// bsp_configureMCU()设置器件 IO 和计时
//全局中断使能被设置为允许外设
//唤醒 MCU。
//
WDTCTL = WDTPW | WDTHOLD;
bsp_configureMCU();
_bis_SR_register (GIE);
//
//启动 CapTIvate 应用程序
//
CAPT_AppStart();
//
//后台循环
//
while (1)
{
//
//运行 captate 应用程序处理程序。
//在应用处理程序运行时设置 LED1,
//并在检测到接近时设置 LED2
//在任何传感器上。
//
LED1_ON;
if (CAPT_appHandler ()=true)
LED2_ON;
其他
LED2_OFF;
LED1_OFF;
//
//这是一个很好的地方,可以添加任何内容
//后台应用程序代码。
//
__no_operation();
//
//后台循环迭代结束
//如果没有剩余的操作,则进入睡眠状态
//
CAPT_appSleep ();
}//结束后台循环
}//结束 main()
----------------------------------------------------
我想将 过滤的计数值和长期平均值(来自 trElement)存储在两个单独的变量中(如 V1和 V2)。 这是我发现的用于读取原始计数的建议代码:
extern tElement BTN00_E00; uint16_t rawSample; //执行更新 CAPT_updateSensorRawCount ( keypadSensor (keypadSensor)、 //指向要更新的传感器的指针 eStandard、 //转换类型 e2x过 采样、//过采样类型 LPM0_BITS //要使用的低功耗模式 ); //读出数据 rawSample = BTN00_E00.ui16CompositeRawCount;
我的方式是否正确? 我可以使用相同的代码来读取过滤计数和长期平均值吗? 我是否需要更改任何内容? 我应该将代码放置在 while 循环中吗?
谢谢 Ling、
在我之前的程序中、我在调试模式中检查了"BTN00_E00_RawCnts"、它正在更新。 但是、我无法检查 "rawSample"值。 您是否有任何示例代码、向我展示如何监控 CCS 终端中的值。 我是否需要添加任何新库和/或函数?
抱歉、我不熟悉 MSP430。
感谢你能抽出时间。
#include //通用 MSP430器件包括
#include "driverlib.h"// MSPWare 驱动程序库
#include "captate.h"// CapTIvate 触控软件库
#include "CAPT_App.h"// CapTIvate 应用程序代码
#include "CAPT_BSP.h"// CapTIvate EVM 板级支持包
#include "stdlib.h"
#include "UART.h"
//#include "inttypes.h"
void printf (char *、...);
void main (void)
{
//
//初始化 MCU
// bsp_configureMCU()设置器件 IO 和计时
//全局中断使能被设置为允许外设
//唤醒 MCU。
//
WDTCTL = WDTPW | WDTHOLD;
bsp_configureMCU();
_bis_SR_register (GIE);
//
//启动 CapTIvate 应用程序
//
CAPT_AppStart();
//
//后台循环
//
while (1)
{
//
//运行 captate 应用程序处理程序。
//在应用处理程序运行时设置 LED1,
//并在检测到接近时设置 LED2
//在任何传感器上。
//
//LED1_ON;
//if (CAPT_appHandler ()=true)
// LED2_ON;
//else
// LED2_OFF;
//LED1_OFF;
外部元素 BTN00_E00;
uint16_t rawSample;
//执行更新
CAPT_updateSensorRawCount (
BTN00、//指向要更新的传感器的指针
eStandard、//转换类型
e2x过 采样、//过采样类型
要使用的 LPM0_Bits //低功耗模式
);
//读出数据
rawSample = BTN00_E00.ui16CompositeRawCount;
printf("%u",rawSample );
printf ("f\r\n");
//这是一个很好的地方,可以添加任何内容
//后台应用程序代码。
//
__no_operation();
//
//后台循环迭代结束
//如果没有剩余的操作,则进入睡眠状态
//
//capt_appSleep ();
}//结束后台循环
}//结束 main()
e2e.ti.com/.../cem_5F00_touch.zipHiAREF、
为什么要输出 rawSample 值。
我们通常使用 CapTIvate 设计中心来观察和调整值。 该在线调优函数使用 FR2532的 UART、这意味着 UART 不能用于 printf 输出。
如果您仍想通过 printf 输出 rawSample 值、则可能需要禁用在线调优功能。
随附的是示例工程、可通过 UART 输出用户定义的数据包、波特率为9600。
您需要做的是将 captate_config 文件夹中的 CAPT_UserConfig.c 和 CAPT_UserConfig.h 文件替换为您自己的文件。
此致、
灵
您好、Ling、
感谢您的回答。
RawSample 值只是我要监视的数据的一个示例。 但最终目标是检测电容变化。 将有几个简单的触摸按钮(电极)连接到 MUC 以进行电容变化监控。
我注意 到您发送的文件适用于 MSP430FR2522和 MSP430FR2512多路复用器。 我制作了 MSP430FR2532开发板、目前正在使用它。
我已将您建议的程序导入到我的 MCU 中、但它不会在终端端口中显示任何内容。 我在 while 循环中仅添加了"printf"函数(+ printf lib)。
我是否需要执行其他操作?
谢谢、