微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > CMSIS-DAP调试、串口并用之——LED MASTER高级点灯大师

CMSIS-DAP调试、串口并用之——LED MASTER高级点灯大师

时间:10-02 整理:3721RD 点击:

在没有屏的时候,串口是个非常重要的工具,一般调试程序的时候都是调试器+usb转串口


而CMSIS-DAP方案大大的简化了硬件连接,在这个项目中,使我的开发调试变得非常便利。
谢谢!
=======================我叫分割线=================================

blink是大多数人入门单片机或测试的必备工程。
也有人觉得自己学了好久还是只会点灯,而笑称自己点灯大师


今天就来电不一样的点灯:带节奏的LED:快闪、慢闪,单闪,双闪,三闪……摩斯码?好像也可以,不就是.__.__之类的么。Easy


生活中的应用:其实身边的设备上用到的很多,最基本的就是电脑的硬盘读取LED,大量读写数据的时候他就会狂闪,平时偶尔闪一下。
用途:1在没有显示的板子上能用LED指示当前工作状态;2通信:摩斯码这个读起来就需要熟悉码表了;3……
原理:其实就是利用移位输出,比如数据0x11,就是二进制的0001 0001,循环移出一次,再加个合适的延时,连续起来,就实现了。
函数实现很简单:
void Blink(u8 LED_Mode)
{
    u8 a = 8;
    while(a--)
    {
        (LED_Mode & 0x80)?(LED_ON):(LED_OFF);
        LED_Mode <<= 1;
        Delay_ms(125);
    }
    LED_OFF;
}
有个小窍门可以跟大家分享下,可能有人觉得0x11之类的16进制数看起来不直观,没关系,那就用直接的二进制00010001表示!怎么实现呢?熟悉arduino的同学应该知道,arduino中是可以直接用B00010001表示二进制数据的,32上也可以!这个的实现全靠binary.h文件,我们可以直接考到目录下面用就可以了,亲测可以!
ps:arduino.h也可以部分使用,比如取绝对值的abs(),求最大max(a,b)等,非常方便

先说硬件:AT24C08+STM32F103+LED,当然还有我们的调试神器CMSIS-DAP,这个实验中可以实现调试、串口并用,非常方便

  1. #include "stm32f10x.h"
  2. #include "usart.h"
  3. //#include "SysTick.h"
  4. #include "binary.h"
  5. #include "blink.h"
  6. #include "AT24CXX.h"
  7. #include "delay.h"

  8. extern u8 buffer[10];
  9. /*
  10. * 函数名:main
  11. * 描述  : 主函数
  12. * 输入  :无
  13. * 输出  : 无
  14. */
  15. int main(void)
  16. {
  17.   
  18.         USART_Config(9600);
  19.         DelayInit(72);//初始化延时
  20.         LED_Pin_Init();//初始化LED
  21.         
  22.         AT24CXX_Init();//初始化eeprom
  23.         
  24.         printf("Test ON \n");
  25.         
  26.         AT24CXX_Read(0x00, buffer, 1);//读取eeprom数据
  27.         
  28.         while(1)
  29.         {
  30.                 Blink(buffer[0]);//闪……
  31.                 Delay1ms(1000);
  32.         }
  33.           // add your code here ^_^。
  34. }

复制代码


还有性感的视频演示:上电先读取eeprom闪烁节奏,初始化之后可以通过串口发送0x0A(也就是二进制的00001010)过去,单片机接收到后回应收到的数据,并存到eeprom,然后按00001010节奏律动……

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top