实验十一 USMART调试组件的使用



测试指令:

测试主函数参考代码:

#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
#include "beep.h"
#include "key.h"
#include "exti.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"
#include "tpad.h"
#include "lcd.h"
#include "usmart.h"
extern u8  TIM5CH1_CAPTURE_STA;     //输入捕获状态
extern u16  TIM5CH1_CAPTURE_VAL;    //输入捕获值
//LED状态设置函数
void led_set(u8 sta)
{LED1=sta;
}
//函数参数调用测试函数
void test_fun(void(*ledset)(u8),u8 sta)
{ledset(sta);
}
int main(){u8 x=0;u8 lcd_id[12];           //存放LCD ID字符串delay_init();           //延时函数初始化    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);    //设置NVIC中断分组2:2位抢占优先级,2位响应优先级uart_init(115200);     //串口初始化为115200LED_Init();                //LED端口初始化LCD_Init();usmart_dev.init(72); POINT_COLOR=RED;sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//将LCD ID打印到lcd_id数组。 while(1) {        switch(x){case 0:LCD_Clear(WHITE);break;case 1:LCD_Clear(BLACK);break;case 2:LCD_Clear(BLUE);break;case 3:LCD_Clear(RED);break;case 4:LCD_Clear(MAGENTA);break;case 5:LCD_Clear(GREEN);break;case 6:LCD_Clear(CYAN);break; case 7:LCD_Clear(YELLOW);break;case 8:LCD_Clear(BRRED);break;case 9:LCD_Clear(GRAY);break;case 10:LCD_Clear(LGRAY);break;case 11:LCD_Clear(BROWN);break;}POINT_COLOR=RED;    LCD_ShowString(30,40,210,24,24,"Elite STM32F1 ^_^"); LCD_ShowString(30,70,200,16,16,"MY TFTLCD TEST");LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");LCD_ShowString(30,110,200,16,16,lcd_id);     //显示LCD ID                           LCD_ShowString(30,130,200,12,12,"2022/1/17");                             x++;if(x==12)x=0;LED0=!LED0;                      delay_ms(1000);    } }// 实验九 电容触摸按键实验
//  EXTIX_Init();
//  delay_ms(200);
//  LED1=1;
//  LED0=0;
//  TIM3_PWM_Init(899,0);//不分频,PWM频率为72M/900=80kHz
//  u8 dir=1;
//  u16 led0pwm=0;
//  TIM5_Cap_Init(0XFFFF,72-1); //以1Mhz的频率计数 按照预定最长可以捕获高电平时间为4.2秒
//  u32 temp=0;
//  TPAD_Init(6);           //初始化触摸按键
//  u8 t=0;
//      while(1)
//  {
//      if(TPAD_Scan(0))    //成功捕获到了一次上升沿(此函数执行时间至少15ms)
//      {
//          LED1=!LED1;        //LED1取反
//      }
//      t++;
//      if(t==15)
//      {
//          t=0;
//          LED0=!LED0;        //LED0取反,提示程序正在运行
//      }
//      delay_ms(10);
//  }//实验六 独立看门狗
//  while(1){
//      key=KEY_Scan(0);
//      if(key==2){//key0按下
//          IWDG_ReloadCounter();
//      }
//  }
//  实验五
//  delay_init();
//  uart_init(115200);   //串口初始化为115200
//  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//  LED_Init();
//  KEY_Init();
//  EXTIX_Init();
//  LED0=0;
//  while(1){
//      printf("ok/n");
//      delay_ms(1000);
//  }实验四 串口中断测试
//void My_USART1_Init(){
//  //时钟使能
//  GPIO_InitTypeDef GPIO_InitStructure;//GPIO参初始化的第二个结构体参数
//  USART_InitTypeDef USART_InitStructure;
//  NVIC_InitTypeDef  NVIC_InitStructure;
//  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA的时钟
//  RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//使能串口1的时钟
//  //GPIO初始化
//  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//设置模式
//  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//设置引脚
//  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
//  GPIO_Init(GPIOA,&GPIO_InitStructure);//第一个参数为GPIO信息,第二个参数的结构体需要自定义
//  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//设置模式
//  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//设置引脚
//  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
//  GPIO_Init(GPIOA,&GPIO_InitStructure);//第一个参数为GPIO信息,第二个参数的结构体需要自定义
//
//  //串口初始化
//  USART_InitStructure.USART_BaudRate=115200;//设置波特率
//  USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
//  USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;//发送接收同时使能
//  USART_InitStructure.USART_Parity=USART_Parity_No;//设置奇偶校验
//  USART_InitStructure.USART_StopBits=USART_StopBits_1;//设置停止位
//  USART_InitStructure.USART_WordLength=USART_WordLength_8b;//设置字长
//  USART_Init(USART1,&USART_InitStructure);
//
//  //使能串口
//  USART_Cmd(USART1,ENABLE);
//
//  //可以不设置中断,但是下面要测试中断,现在主函数设置了中断的优先级
//  //开启需要的中断
//  USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//这里的第二个参数设置接收缓存区非空即中断
//
//  NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;//设置通道,在stm32f10x.h文件里面找到相应的定义
//  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;//设置抢占优先级
//  NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;//设置响应优先级
//  NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;//是否开启中断通告
//  NVIC_Init(&NVIC_InitStructure);//中断设置
//
//
//}
下面编写中断服务函数
//void USART1_IRQHandler(){
//  //首先判断中断类型
//  u8 rec;
//  if(USART_GetITStatus(USART1,USART_IT_RXNE)){
//  //符合前面定义的中断,可以读取数据
//      rec=USART_ReceiveData(USART1);
//      USART_SendData(USART1,rec);
//  }
//}//int main(){
//  LED_Init();
//  delay_init();
//  BEEP_Init();
//  KEY_Init();
//  //中断优先级设置
//  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//  My_USART1_Init();
//  while(1);
//
//}//LED_Init();
//  delay_init();
//  BEEP_Init();
//  KEY_Init();
//  u8 key=0,key0=0,key1=0,key_up=0;
//  u8 mode=1;
//  while(1){
//      //实验三,设置key0按下即灯亮,再按下即灯灭  key1 按下即蜂鸣器响起,再按下即关闭
//      key=KEY_Scan(mode);//设置key_up的模式为不连续
//      if(key==3){
//          key_up+=1;//key_up按下
//          if(key_up%2==0) mode=1;
//          else mode=0;
//      }else if(key==2){
//          key1+=1;//key1按下
//          if(key1%2==0) GPIO_ResetBits(GPIOB,GPIO_Pin_8);//蜂鸣器关闭
//          else GPIO_SetBits(GPIOB,GPIO_Pin_8);//响起
//      }else if(key==1){
//          key0+=1;
//          if(key0%5==0) GPIO_ResetBits(GPIOB,GPIO_Pin_5);//灯亮
//          else GPIO_SetBits(GPIOB,GPIO_Pin_5);//灯灭
//      }// }//     //实验二 蜂鸣器+流水灯显示,灯亮蜂鸣响,灯灭不响
//      GPIO_SetBits(GPIOB,GPIO_Pin_5);
//      GPIO_ResetBits(GPIOB,GPIO_Pin_8);
//      delay_ms(3000);
//      GPIO_ResetBits(GPIOB,GPIO_Pin_5);
//      GPIO_SetBits(GPIOB,GPIO_Pin_8);
//      delay_ms(2000);//实验一流水灯
//      //设置高电平
//      GPIO_SetBits(GPIOB,GPIO_Pin_5);
//      GPIO_SetBits(GPIOE,GPIO_Pin_5);
//
//      delay_ms(1000);
//
//      //设置低电平
//      GPIO_ResetBits(GPIOB,GPIO_Pin_5);
//      GPIO_ResetBits(GPIOE,GPIO_Pin_5);
//      delay_ms(1000);//void Delay(u32 count)
//{
//u32 i=0;
// for(;i<count;i++);
//}
//int main(void)
//{
// GPIO_InitTypeDef GPIO_InitStructure;
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|
//RCC_APB2Periph_GPIOE, ENABLE); //使能 PB,PE 端口时钟
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 端口配置
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz
// GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化 GPIOB.5
// GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5 输出高
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1-->PE.5 推挽输出
// GPIO_Init(GPIOE, &GPIO_InitStructure); //初始化 GPIO
// GPIO_SetBits(GPIOE,GPIO_Pin_5); //PE.5 输出高
// while(1)
//{
// GPIO_ResetBits(GPIOB,GPIO_Pin_5);
// GPIO_SetBits(GPIOE,GPIO_Pin_5);
//Delay(3000000);
//GPIO_SetBits(GPIOB,GPIO_Pin_5);
//GPIO_ResetBits(GPIOE,GPIO_Pin_5);
//Delay(3000000);
//}
//}

STM32F103学习笔记(十一)——USMART调试组件的使用相关推荐

  1. Apache Nutch 1.3 学习笔记十一(页面评分机制 LinkRank 介绍)

    下面是Google翻译的http://wiki.apache.org/nutch/NewScoring内容,是关于Nutch 新的链接分数算法的说明,有点类似于Google的PageRank,这里有其 ...

  2. Vue学习笔记(十一)

    1.Vue学习笔记(十一) 文章目录 1.Vue学习笔记(十一) 1.1Vue_配置代理_方式 1.1.0演示问题 1.1.1运行node server1 1.1.2运行node server2 1. ...

  3. amazeui学习笔记--css(常用组件4)--关闭按钮Close

    amazeui学习笔记--css(常用组件4)--关闭按钮Close 一.总结 1.关闭按钮基本用法:关闭按钮样式,可以结合其他不同组件使用.对 <a> 或者 <button> ...

  4. Apache Nutch 1.3 学习笔记十一(页面评分机制 OPIC)

    1. Nutch 1.3 的页面评分机制 Nutch1.3目前默认还是使用OPIC作为其网页分数算法,但其之后,已经引入了PageRank-like算法,以弥补OPIC算法的不足,目前OPIC算法还是 ...

  5. dev c++怎么调试_「正点原子NANO STM32开发板资料连载」第十八章 USMART 调试组件...

    1)实验平台:ALIENTEK NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第十八章 U ...

  6. 吴恩达《机器学习》学习笔记十一——应用机器学习的建议

    吴恩达<机器学习>学习笔记十一--应用机器学习的建议 一.训练完模型后下一步要做什么 二.评估算法与模型选择 1.训练集与测试集 2.训练/测试步骤 3.模型选择 4.数据集新的划分--验 ...

  7. 吴恩达《机器学习》学习笔记十一——神经网络代码

    吴恩达<机器学习>学习笔记十一--神经网络代码 数据准备 神经网络结构与代价函数· 初始化设置 反向传播算法 训练网络与验证 课程链接:https://www.bilibili.com/v ...

  8. amazeui学习笔记--css(常用组件1)--小徽章Badge

    amazeui学习笔记--css(常用组件1)--小徽章Badge 一.总结 1.am-badge:添加am-badge来声明小徽章对象 <span class="am-badge a ...

  9. amazeui学习笔记--css(常用组件5)--评论列表Comment

    amazeui学习笔记--css(常用组件5)--评论列表Comment 一.总结 1.am-comment:使用am-comment来声明评论对象,这个是放在article里面的,虽然article ...

最新文章

  1. CoordinatorLayout与滚动的处理
  2. 关于longlong与位运算
  3. python基础论文_北大博士Python学习笔记,Python基础语法总结,一篇文章带你入门...
  4. linux下搜狗输入法无法输入中文解决方法
  5. 打印机共享无法正常打印的处理思路
  6. JAVA移慎_java里面给对象赋值,慎用赋值符号(=) (转)
  7. PHP多线程(Pthread初探)
  8. mdb新版本打不开_救命!!! 我打不开她给我的Pr工程……
  9. f3 fatfree小型php,F3-fatfree小型php框架教程(三)
  10. JQuery超链接鼠标提示效果
  11. java jar包转成exe运行
  12. 手把手教你写数独计算器(1)
  13. JavaScript小白入门篇(二、高级语法之 BOM 详解)
  14. SecureCRT远程连接虚拟机
  15. MaxCompute 助力衣二三构建智能化运营工具
  16. Multi-Objective Computation Sharing in Energy and Delay Constrained Mobile Edge Computing
  17. 模拟键盘鼠标事件有两种方法
  18. iOS 通过定位获取常驻后台
  19. 大家来找茬辅助工具实现
  20. carsim与simulink联合仿真模型 车道保持,轨迹跟随,横向控制

热门文章

  1. 求解一个约束优化问题
  2. HPM6750系列--第一篇 初识HPM6750
  3. matlab自适应amc,自适应调制解调(ACM),Adaptive modulation and coding (AMC),音标,读音,翻译,英文例句,英语词典...
  4. 西瑞克斯机顶盒cy-jc1320安装APP
  5. 怀旧服最新pve服务器,部落玩家被歧视了?魔兽怀旧服三个PVE服务器,联盟专享占两个...
  6. 2010最欠扁的十大网络红人
  7. 【C】报错[Error] lvalue required as left operand of assignment
  8. 考核指标在管理中心的重要性
  9. shell十三问--shell教程
  10. 小鸟云安全组在哪里?怎么设置?