- 博客(14)
- 收藏
- 关注
原创 STM32利用Flymcu进行烧录
烧录教程刻录也叫烧录,就是把数据通过刻录机等工具刻制到光盘,烧录卡(GBA)等介质中,即大家说的下载。目前大家手中没有J-link和ST-link等其他仿真器,只能用串口烧录的仿真软件FlyMcu。提前在A盘(资料盘)解压后,找到它因为他是利用串口烧录的,就要下载串口的驱动。1.串口驱动安装驱动同样在A盘(资料盘),路径如下:点击setup。接着我们在STM32上USB_TTL处插入USB线,并连接上电脑,如果之前没有安装过CH340的驱动(如果安装过,则应该在设备管理器看到USB串口,
2021-10-13 14:20:43
15229
1
原创 OPENCV——C++版图像形状简单识别
OPENCV——C++版图像形状简单识别其实就是简单的小实验,识别图形,opencv的库里是有对应的函数。首先可以勾勒出他们的轮廓,其次还可以识别哪些是三角形,哪些是圆形,哪些是矩形。这就是形状、轮廓检测的功能。预处理1.灰度cvtColor(img, imgGray,COLOR_BGR2GRAY, 0);2.高斯滤波GaussianBlur(imgGray, imgBlur, Size(65, 65), 1, 1);3.Canny边缘检测 Canny(imgBlur, i
2021-08-28 22:19:52
6867
2
原创 STM32F4系列HAL库配置定时器实验——输入捕获
STM32F4系列HAL库配置定时器实验——输入捕获输入捕获简单讲解输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量周期和频率为例,用一个简图来说明输入捕获的原理假定定时器工作在向上计数模式,图中 t1~t2 时间,就是我们需要测量的高电平时间。测量方法如下:首先设置定时器通道 x 为上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器
2021-08-28 21:40:27
7897
8
原创 STM32F1基本定时器实验-外部触发脉冲计数
STM32F1定时器实验-外部触发脉冲计数之前我们用外部中断测量了PWM的频率,而外部触发是设置2个定时器,利用按键触发,一个定时器2用来接受外部触发信号并计数,另一个定时器6实时检测按键。按照这样的思路,我们的按键读取用状态机思想去读取,使定时器6产生10ms的定时中断来实时检测按键并利用状态机设计思想处理按键信号,将PA1设置成输出引脚,设置定时器2的PA0引脚来接收信号,通过按键触发改变标志位来发送电平信号,再定义全局数存放PA0接收脉冲信号次数,最后串口配置。什么?你不知道状态机思想?送你学习
2021-08-25 23:01:19
4436
1
原创 MSP432使用步进电机
MSP432P401步进电机使用其实是电赛练手题里有一个1分钟转一圈的要求,就算我把占空比改到最小,也无法办到,证明普通电机无法办到这一点,只好用到步进电机。同时我们还要一个步进电机驱动,就是之后图片的大黑盒子DM542,大概100大洋左右。代码部分设置TIMER_A输出pwmTimer_A_PWMConfig TIM0_PwmConfig2 = { TIMER_A_CLOCKSOURCE_SMCLK, TIMER_A
2021-08-25 12:33:26
1024
原创 STM32F1系列基本定时器HAL库配置
STM32F1系列基本定时器HAL库配置时钟的概念了解完就趁热打铁进行定时器的简单讲解,定时器的操作是十分重要的,他不仅可以用于计数/定时(两者其实一个道理),还可以生成PWM,输入捕获等等,高级定时器可以用于工业电机上的有关操作。所以,我们专门讲解一波基本定时器,并用它做一个闪烁灯小实验。定时器简介在STM32F1上,常规定时器分为三种定时器:高级,通用,基本;高级定时器的功能涵盖通用定时器,通用定时器功能涵盖基本定时器以基本定时器实现计数功能,这里说的并不准确,应该说是定时功能,定时是对
2021-08-24 22:07:32
2338
原创 STM32F1系列HAL库配置系统时钟
STM32F1系列HAL库配置系统时钟其实一开始对于时钟我也是知之甚少,在MSP432中我就一直忽视时钟配置,其实也是在STM32学习时落下的病根,现在趁有空补一下。时钟简单讲解对于时钟系统,在之前我写启动文件涉及到,其实,每个功能的实现都涉及到时钟。我们首先说明一下RCCRCC:复位和时钟控制什么是复位,什么又是时钟?在STM32参考手册中文版我们可以看到注意“除了时钟控制器的RCC_CSR寄存器中的复位标志位和备份区域中的寄存器(见图4)以外,系统复位将复位所有寄存器至它们的复位状态。”这
2021-08-21 17:08:10
5057
原创 STM32F1系列启动过程简单讲解
STM32F1系列HAL库配置系统时钟和启动过程简单讲解STM32F1采用ARM-Cortex-M3内核,对于他的启动以及复位,时钟系统,都是紧密联系的。以下内容对你对模块的操作帮助可能不太大,但对于你理解其工作模式是有帮助的,对于只想要简单使用单一模块的建议可以不看但是如果要深入了解,那你就要听我哔哔了。我对于时钟系统也是说一下自己知道的,毕竟官方手册中文版讲的很明白了,只需要稍稍解释一下即可。1.如何启动ARM-CM3处理器结构为哈佛结构,哈佛结构是一种将程序指令存储和数据存储分开的存储器结构
2021-08-20 21:29:36
706
原创 STM32F1系列HAL库配置外部中断——测量pwm频率
STM32F1系列HAL库配置外部中断——测量pwm频率一.中断的简单介绍对于之前的串口配置,之所以把串口中断搁置是因为它牵扯到中断这一概念,而我觉得中断对于像我这样的初学者来说是较为难理解的概念,所以,我专门把中断这个应用拿出来。但是也是很浅显的一点点,毕竟中断牵扯的确实有点多,外部中断(EXIT),串口中断,ADC中断及各种外设中断,我并不想在这里解释太多,因为我自己还有很多地方要学习,所以把外部中断拿来分享一下。中断中断是指计算机正在运行程序时,出现某些意外需要主机干预,主机可以暂停正在进行的
2021-08-19 22:14:02
2183
2
转载 STM32F1系列HAL库配置串口通信(2)——串口重定向以及log信息格式输出
串口重定向以及log信息格式输出之前我们提到了HAL库配置串口,但是由于我们还没有进行到中断,所以对于一些HAL库里有关串口的函数还是很难全部应用的,尽管如此,我们依然可以借助这两个函数胡作非为 加以利用。1.串口发送数据:HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)功能:串口发送指定长度的数据。如果超时没发送完成,则不再发送,返回超时标志(HAL_TIMEO
2021-08-16 17:19:13
6200
1
原创 STM32F1系列HAL库配置串口通信
STM32F1系列HAL库配置串口通信简单来说,串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。UART与USART简单讲解UART: 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作 UART。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART 通常被集成于其他通讯接口的连结上。USART:(Universal Synchr
2021-08-15 20:31:47
1711
原创 STM32F1系列HAL库配置GPIO
STM32F1系列HAL库配置GPIO前言(废话)老早就被安利了stm32CUBEMX,只是当时特别懒,也没啥感觉,如今看来真的是不知好歹了我。相比较标准库,HAL库十分方便快捷,相当于你直接跳过了各种复杂的配置,直接来到应用层,并且只要明白库中函数如何使用,基本上就可以写了,比起早已不更新的标准库,HAL库的优势不至于此,虽说看懂标准库也十分重要,但是过程却是当你痛苦的go to definition,发现你根本看不懂,又烦又长但是,cubemx真的解放了我的眼睛和手,我一个手癌选手激动的都要
2021-08-14 20:26:28
1986
1
原创 MSP串口打印避坑
MSP432UART_print两天实现ccs选手的疑惑##自定义的串口打印一个参数引发的惨案ccs选手的疑惑##还没有的给你传送:ccs安装教程当你装好了ccs时,我们就入土了一半了,ccs虽然是官方编程调试软件,但是他有诸多不便之处,一位不愿透漏姓名的学长曾用它烧了半个小时代码,你完全可以在VScode或者Clion配置更好的环境。但是来都来了,用库函数写的全国统一的好吧,接下来就是导入diverlib库函数,教程传送门:ccs库函数导入因为我们主要讲串口,所以就只涉及串口的相关参数和函数
2021-07-08 22:43:09
953
原创 MSP432中断初试
MSP432中断初试@目录MSP430 单片机中断再次领悟中部中断实验一、MSP430 单片机中断与所有单片机一样包括中断请求,中断响应,中断处理,中断返回下面展示一些 中断程序编写格式。#pragma vector=中断向量名(中断向量号,为中断地址)__interrupt void 自定义中断函数名(void){… }#pragma vector=PORT1_VECTOR__interrupt void Port_1(void){ P1OUT ^= BIT0; //
2021-06-01 20:24:16
2279
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人