打开主菜单

谷雨文档中心 β

更改

NRF52832DK基础实验

添加2,158字节2019年7月3日 (三) 10:02
nRF52832DK基础实验说明列表
|GPIO边沿中断
|熟悉GPIO边沿中断
|-
|04_振动马达实验
|GPIO
|熟悉GPIO操作
|-
|05_蜂鸣器实验
|GPIO
|熟悉GPIO操作
|-
|06_RGB实验
|PWM
|熟悉PWM操作
|-
|07_TFT实验(tft_lcd_144,tft_lcd_130)
|SPI
|熟悉SPI操作
|-
|08_UART收发实验
|UART
|熟悉UART操作
|-
|09_光照度实验
|ADC
|熟悉ADC操作
|}
# 按下SW3,LED3亮;释放SW3,LED3灭
# 按下SW3,LED4亮;释放SW4,LED4灭
 
=== 振动马达实验 ===
在NRF52832DK评估板上,设计有一路振动马达,方便开发者对蓝牙ANCS开发。其直流马达的工作原理不用多介绍,只要给它提供直流电即可工作。MOTOR端的高低电平,将会另三极管打开与关闭,从而控制振动马达工作。MOTOR是连接在nrf52832的P0.12引脚上。
[[文件:MOTOR.png|居中|缩略图|500x500像素]]
 
==== 代码分析 ====
开发者打开谷雨物联提供的peripheral_ghostyu文件夹中04_motor_example工程(IAR工程)。
 
在IAR的Workspace中点开Application,双击main.c文件,打开main.c。<syntaxhighlight lang="c" line="1">
//******************************************************************************
// fn :main
//
// brief : 主程序入口
//
// param : none
//
// return : none
int main(void)
{
Motor_Init();
LED_Init();
 
for(;;)
{
//循环点亮熄灭LED,间隔500ms
for( uint8_t i = 0; i < LEDS_NUMBER ; i++)
{
nrf_gpio_pin_toggle(Leds[i]);
nrf_gpio_pin_toggle(BSP_MOTOR_0);
nrf_delay_ms(500);
}
}
}
</syntaxhighlight>main函数与《01_LED亮灭实验》十相似,只是在其基础上添加了MOTOR相关的代码。
 
Motor_Init函数是对MOTOR引脚进行输出初始化。nrf_gpio_pin_toggle函数是对MOTOR引脚的电平进行翻转,从而输出高低电平,即马达就会振动与关闭。
 
==== 实验现象 ====
硬件准备:
# Jlink-Lite仿真器或J-Link仿真器
# NRF52832DK评估板
编译工程,点击IAR IDE工具栏中绿色三角仿真按钮,IAR便会将程序下载到nRF52832中,点击全速运行即可。此时NRF52832的LED便会每500ms依次点亮LED;当四个LED全部点亮后,再以500ms依次熄灭LED,直到全部熄灭。期间,每一次LED状态改变,其马达就会工作一次或关闭一次,间隔时间是500ms。
119
个编辑