裸机教程 ——DA14580DK/AK开发板系列 快速搭建 DA14580开发平台,DIY低成本【原理图】【教程】【源代码】【工具】 作者: open-ble.org 如何快速低成本搭建 DA14580软硬件开发平台 open-ble.org 1.一颗DA14580芯片模块,所有引脚都已经引出。(淘宝搜“DA14580模块”,20元一只) 2.一个 J-Link OB仿真调试器。(淘宝搜“J-Link OB仿真调试器” 30元一只)! ) 3.本站open-ble.org资源(包括原理图、软件代码、教程、开发工具、烧写工具(点击下载)) http://open-ble.org/forum.php?mod=forumdisplay&fid=62 4. open-ble内发帖交流!学习!共进! 2015/3/21 Open-ble.org DA14580DKAK开发板系列 转载请注明出处 目录 术语和定义.........................................................................................................................................3 一、开发板演示.................................................................................................................................3 二、安装 Keil......................................................................................................................................3 三、最简代码.....................................................................................................................................3 四、GPIO实验....................................................................................................................................3 五、Timer实验..................................................................................................................................5 六、ADC实验.....................................................................................................................................6 七、INT实验......................................................................................................................................8 八、UART实验...................................................................................................................................9 九、I2C实验.....................................................................................................................................11 9.1实时时钟实验....................................................................................................................12 9.2 MPU实验............................................................................................................................12 十、SPI实验.....................................................................................................................................12 10.1 SPI板子之间通信实验.....................................................................................................12 10.2 SPI读写 FLASH实验........................................................................................................ 14 官网地址:http://www.open-ble.org http://www.open-ble.org DA14580DKAK开发板系列 转载请注明出处 术语和定义 SDK GPIO INT 软件开发工具包(Software Development Kit) 通用输入输出(General Purpose Input/Output) 中断(Interrupt) ADC I2C 模数转换(Analog to Digital Converter) 集成电路通信总线(Inter-Integrated Circuit bus) 串行外设接口(Serial Peripheral Interface) 通用异步收发器(Universal Asynchronous Receiver/Transmitter) 定义了一些编译规则的文件 SPI UART Makefile BLE 低功耗蓝牙 4.0(Bluetooth Low Energy) DA14580蓝牙协议栈依托的系统(RivieraWaves) RW 一、开发板演示 开发板演示见教程《零基础快速上手教程》中,该教程位于目录:.. \DA14580DKAK开发板\教程\1 初级教程。 二、安装 Keil 参考《零基础快速上手教程》,位于目录:..\DA14580DKAK开发板\教程\1初级教程。 三、最简代码 我们提供了最简代码的工程 Simple_Code.uvproj,工程路径为:…\DA14580DKAK开发板\教程\1初 级教程\最简代码,用户可以在此基础上一步步添加完善自己的程序。 四、GPIO实验 现在我们在最简代码基础上进行 GPIO实验。 GPIO实验的Keil工程Simple_GPIO.uvproj,位于目录:..\DA14580DKAK开发板\教程\1初级教程\GPIO 实验。 在工程目录 Source Files分组中添加 gpio.c文件,如下图红框部分所示: 官网地址:http://www.open-ble.org http://www.open-ble.org DA14580DKAK开发板系列 转载请注明出处 在 peripherals.c文件中的 set_pad_functions(void)函数中添加相应 GPIO口的配置,如下 图红框部分: 在 main函数文件中添加 gpio.h头文件,并添加延时函数,在 main函数主循环中添加 相关语句。下面注释部分为流水灯程序,上面没有注释的为闪灯程序,若要进行流水灯实验 可以将上面的语句注释,然后下面的取消注释,编译就可以了。如下图红框部分: 官网地址:http://www.open-ble.org http://www.open-ble.org DA14580DKAK开发板系列 转载请注明出处 连接好 Jlink,点击 DEBUG,然后点击全速运行,若为闪灯程序,则可以看到 LED4 闪烁,若为流水灯程序,则可以看到三个流水灯循环点亮熄灭。 五、Timer实验 现在我们在最简代码基础上进行定时器实验。 Timer实验的 Keil工程 Simple_Timer.uvproj,位于目录:..\DA14580DKAK开发板\教程\1初级教程\ 定时器实验。 在工程目录 Source Files分组中添加 pwm.c以及 gpio.c文件,如下图红框部分所示: 在 peripherals.c文件中的 set_pad_functions(void)函数中添加相应 GPIO口的配置,如下 图红框部分所示: 在 main函数文件中添加 pwm.h、gpio.h头文件,并定义 timer_init()函数,在 main函数 中添加定时器初始化函数 timer_init();,如下图所示: 官网地址:http://www.open-ble.org http://www.open-ble.org DA14580DKAK开发板系列 转载请注明出处 在 pwm.c文件中添加头文件 gpio.h、 peripherals.h,并在定时中断函数 void SDA14580DKAKIM_Handler(void)中添加任务代码,如下图红框部分所示: 连接好 Jlink,点击 DEBUG,然后点击全速运行,若为闪灯程序,则可以看到 LED4闪烁, 若为流水灯程序,则可以看到三个流水灯循环点亮熄灭。程序的选择与 GPIO实验类似。 六、ADC实验 现在我们在最简代码基础上进行 ADC实验。 ADC实验的 Keil工程 Simple_ADC.uvproj,位于目录:..\ DA14580DKAK开发板\教程\1初级教程\模 数转换实验。 在工程目录 Source Files分组中添加 adc.c、gpio.c文件,如下图红框部分所示: 官网地址:http://www.open-ble.org http://www.open-ble.org DA14580DKAK开发板系列 转载请注明出处 在 peripherals.c文件中的 set_pad_functions(void)函数中添加相应 GPIO口的配置,如下 图红框部分所示: 在 main函数文件中添加 gpio.h、adc.h头文件,在 main函数中添加 adc_get_result();函 数等,如下图红框部分所示: 连接好 Jlink,点击 DEBUG,然后点击全速运行,调节可调电阻,如果模数转换的值大 官网地址:http://www.open-ble.org http://www.open-ble.org DA14580DKAK开发板系列 转载请注明出处 于 800则亮三个 LED,大于 500小于 800则亮两个 LED,大于 200小于 500则亮 1个 LED, 小于 200则 LED全灭。 七、INT实验 现在我们在最简代码基础上进行中断实验。 INT实验的 Keil工程 Simple_INT.uvproj,位于目录:..\ DA14580DKAK开发板\教程\1初级教程\中断 实验。 在工程目录 Source Files分组中添加 gpio.c文件,如下图红框部分所示: 在 peripherals.c文件中的 set_pad_functions(void)函数中添加相应 GPIO口的配置,如下 图红框部分所示: 在 main函数文件中添加 gpio.h头文件,并定义中断初始化函数 gpio_int()函数以及中断 函数,在 main函数中开中断等,如下图红框部分所示: 官网地址:http://www.open-ble.org http://www.open-ble.org DA14580DKAK开发板系列 转载请注明出处 连接好 Jlink,点击 DEBUG,然后点击全速运行,按下按键 B2则 LED4亮,按下按键 B3 则 LED4灭。 八、UART实验 现在我们在最简代码基础上进行串口实验。 SPI实验的 Keil工程 Simple_UART.uvproj,位于目录:..\ DA14580DKAK开发板\教程\1初级教程\串 口实验。 在工程目录 Source Files分组下添加 uart.c、gpio.c文件,如下图红框部分所示: 官网地址:http://www.open-ble.org http://www.open-ble.org DA14580DKAK开发板系列 转载请注明出处 在 peripherals.h文件中添加宏定义,如下图红框所示: 在 peripherals.c文件中的 set_pad_functions(void)函数中添加相应 GPIO口的配置,如下 图红框部分: 在 main函数文件中添加 uart.h头文件,并定义 gpio_int()、uart_pc()以及中断函数,在 main函数中添加中断初始化函数 gpio_int(),串口初始化函数 uart_init()等,如下图红框部分 所示: 官网地址:http://www.open-ble.org http://www.open-ble.org DA14580DKAK开发板系列 转载请注明出处 串口实验包括两个实验,一个是与 PC串口调试助手通信,一个是板子之间的通信,他 们之间可以通过 peripherals.h文件中的宏定义 UART_PC来切换。 连接好 Jlink以及串口模块,打开串口调试助手,点击 DEBUG,然后点击全速运行,就 可以看到串口调试助手打印出的信息,并且发送什么数据就回复什么数据,如下图所示: 两个板子之间进行通信,利用杜邦线连接两个板子的串口(注意交叉连接),还有 GND。 两个板子都下载好程序之后,按下按键 B2,则另外一个板子的电机震动,按下按键 B3,则 另外一个板子的电机停止振动。 九、I2C实验 现在我们在最简代码基础上进行 I2C实验。 官网地址:http://www.open-ble.org http://www.open-ble.org DA14580DKAK开发板系列 转载请注明出处 9.1实时时钟实验 该实验请参考《实时时钟专题讲解》,位于目录:..\DA14580DKAK开发板\教程\ 专题下。 9.2 MPU实验 该实验请参考《MPU专题讲解》,位于目录:..\DA14580DKAK开发板\教程\ 专题下。 十、SPI实验 现在我们在最简代码基础上进行 SPI实验。 SPI实验的 Keil工程 Simple_SPI.uvproj,位于目录:..\ DA14580DKAK开发板\教程\1初级教程\SPI 实验。 10.1 SPI板子之间通信实验 在工程目录 Source Files分组下添加 spi.c、gpio.c文件,如下图红框部分所示: 在 peripherals.h文件中添加宏定义,如下图红框所示: 在 peripherals.c文件中的 set_pad_functions(void)函数中添加相应 GPIO口的配置,如下 图红框部分所示: 官网地址:http://www.open-ble.org http://www.open-ble.org DA14580DKAK开发板系列 转载请注明出处 在 main函数文件中添加 spi.h头文件,并且定义 gpio_int()函数以及 SPI、GPIO中断函数。 在 main函数中添加初始化函数并开中断。如下图所示: 官网地址:http://www.open-ble.org http://www.open-ble.org DA14580DKAK开发板系列 转载请注明出处 将 SPI主从程序(可以通过 pheripherals.h中的宏定义 SPI_MASTER,SPI_SLAVE来改变主 从)分别下载到两个板子中,然后用杜邦线连接好两个开发板(根据宏定义的引脚连接主板 P06->从板 P01,P00->P00,GND->GND),按主开发板上的按键 B2则另一个开发板上的 LED6 会亮,按下按键 B3,则另一个开发板上的 LED6熄灭。 10.2 SPI读写 FLASH实验 该实验见《SPI FLASH专题讲解》,位于目录:..\DA14580DKAK开发板\教程\ 专题下。 官网地址:http://www.open-ble.org http://www.open-ble.org