STM32F103学习笔记(十一)——USMART调试组件的使用
实验十一 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调试组件的使用相关推荐
- Apache Nutch 1.3 学习笔记十一(页面评分机制 LinkRank 介绍)
下面是Google翻译的http://wiki.apache.org/nutch/NewScoring内容,是关于Nutch 新的链接分数算法的说明,有点类似于Google的PageRank,这里有其 ...
- Vue学习笔记(十一)
1.Vue学习笔记(十一) 文章目录 1.Vue学习笔记(十一) 1.1Vue_配置代理_方式 1.1.0演示问题 1.1.1运行node server1 1.1.2运行node server2 1. ...
- amazeui学习笔记--css(常用组件4)--关闭按钮Close
amazeui学习笔记--css(常用组件4)--关闭按钮Close 一.总结 1.关闭按钮基本用法:关闭按钮样式,可以结合其他不同组件使用.对 <a> 或者 <button> ...
- Apache Nutch 1.3 学习笔记十一(页面评分机制 OPIC)
1. Nutch 1.3 的页面评分机制 Nutch1.3目前默认还是使用OPIC作为其网页分数算法,但其之后,已经引入了PageRank-like算法,以弥补OPIC算法的不足,目前OPIC算法还是 ...
- dev c++怎么调试_「正点原子NANO STM32开发板资料连载」第十八章 USMART 调试组件...
1)实验平台:ALIENTEK NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第十八章 U ...
- 吴恩达《机器学习》学习笔记十一——应用机器学习的建议
吴恩达<机器学习>学习笔记十一--应用机器学习的建议 一.训练完模型后下一步要做什么 二.评估算法与模型选择 1.训练集与测试集 2.训练/测试步骤 3.模型选择 4.数据集新的划分--验 ...
- 吴恩达《机器学习》学习笔记十一——神经网络代码
吴恩达<机器学习>学习笔记十一--神经网络代码 数据准备 神经网络结构与代价函数· 初始化设置 反向传播算法 训练网络与验证 课程链接:https://www.bilibili.com/v ...
- amazeui学习笔记--css(常用组件1)--小徽章Badge
amazeui学习笔记--css(常用组件1)--小徽章Badge 一.总结 1.am-badge:添加am-badge来声明小徽章对象 <span class="am-badge a ...
- amazeui学习笔记--css(常用组件5)--评论列表Comment
amazeui学习笔记--css(常用组件5)--评论列表Comment 一.总结 1.am-comment:使用am-comment来声明评论对象,这个是放在article里面的,虽然article ...
最新文章
- CoordinatorLayout与滚动的处理
- 关于longlong与位运算
- python基础论文_北大博士Python学习笔记,Python基础语法总结,一篇文章带你入门...
- linux下搜狗输入法无法输入中文解决方法
- 打印机共享无法正常打印的处理思路
- JAVA移慎_java里面给对象赋值,慎用赋值符号(=) (转)
- PHP多线程(Pthread初探)
- mdb新版本打不开_救命!!! 我打不开她给我的Pr工程……
- f3 fatfree小型php,F3-fatfree小型php框架教程(三)
- JQuery超链接鼠标提示效果
- java jar包转成exe运行
- 手把手教你写数独计算器(1)
- JavaScript小白入门篇(二、高级语法之 BOM 详解)
- SecureCRT远程连接虚拟机
- MaxCompute 助力衣二三构建智能化运营工具
- Multi-Objective Computation Sharing in Energy and Delay Constrained Mobile Edge Computing
- 模拟键盘鼠标事件有两种方法
- iOS 通过定位获取常驻后台
- 大家来找茬辅助工具实现
- carsim与simulink联合仿真模型 车道保持,轨迹跟随,横向控制
热门文章
- 求解一个约束优化问题
- HPM6750系列--第一篇 初识HPM6750
- matlab自适应amc,自适应调制解调(ACM),Adaptive modulation and coding (AMC),音标,读音,翻译,英文例句,英语词典...
- 西瑞克斯机顶盒cy-jc1320安装APP
- 怀旧服最新pve服务器,部落玩家被歧视了?魔兽怀旧服三个PVE服务器,联盟专享占两个...
- 2010最欠扁的十大网络红人
- 【C】报错[Error] lvalue required as left operand of assignment
- 考核指标在管理中心的重要性
- shell十三问--shell教程
- 小鸟云安全组在哪里?怎么设置?