STM32
文章平均质量分 51
STM32
木白CPP
工欲善其事,必先利其器
展开
-
Keil出现警告:warning: #223-D: function “XXX“ declared implicitly
这个警告表明编译器在函数使用之前没有找到函数的显式声明或定义。这通常发生在函数被使用之前没有在当前文件中进行声明或定义,或者头文件未正确包含。如果两个.h文件,比如pwm.h和timer.h文件都包括相同的宏,就会产生冲突,出现上述问题。如果说,头文件里我也定义了,在调用该函数的源文件中我也引了相关的头文件,还是报错怎么办?解决办法很简单,把其中一个.h文件的宏换掉就可以了,比如换成。这时候你需要检查一下是否使用下面的宏。原创 2024-04-25 14:25:03 · 4153 阅读 · 0 评论 -
STM32F407串口助手无法识别到串口
我用的芯片板是 STM32F407VGT6,在连接上数据线后发现串口助手识别不到芯片板的串口,串口驱动我也安装了,试了好几次插拔,发现都不行。后来找到了原因,因为之前一直用的正点原子的板子,默认数据线是支持串口的,后来发现现在买的这块。连上usb转ttl模块后,我们可以在设备管理器中查看,发现已经连接上了(COM5)。usb转ttl模块和芯片板上的RX、TX要交叉连接,即模块的RX接芯片板的TX,模块的TX接芯片板的RX。,如果想实现串口功能的话,需要用到下图中打勾的四个引脚。原创 2024-04-25 11:01:56 · 3103 阅读 · 0 评论 -
STM32F407点亮LED灯(HAL库)
相信大部分初学者所接触到单片机的第一个实验时led灯,点亮一个LED或者做一个LED流水灯的操作。下面来看一下用HAL库怎么完成这个实验第一步;打开STM32CubeMX,找到LED对应的引脚,配置为GPIO输出第二步:在SYS中选择SerialWire,只有选择了,之后的工程才能用st-link正常烧录第三步:开启外部时钟,使能达到407的最大频率168mhz第四步:生成工程代码,注意选项,可以参考我之前写的一篇文章STM32CubeMX的下载安装以.原创 2021-10-08 23:25:27 · 6798 阅读 · 1 评论 -
keil最新版安装以及PJ
Keil的安装想写一个关于keil破解版的安装,但是csdn一直不给通过,只能写在公众号上了,上面链接就是。个人公众号,我一般会把资料都整理到公众号上,完全免费的。感兴趣的可以关注一下...原创 2021-10-05 23:34:29 · 260 阅读 · 0 评论 -
keil5mdk安装(免费)
无论是51还是32单片机,都需要一款编译器编程从而实现芯片相应的功能。如今常见的单片机编译器有Keil和IAR,随着时代的推进,Keil基本上成为了主流工具,IAR用的人越来越少,在高校中可能仍在使用。今天主要是讲Keil的安装,我把所需要的材料整理了一下,如下图所示:资料的获取在本文末尾会提到第一步:安装keil,点击MDK535.exe安装即可,正常的keil使用是有试用期的,如果要获得免费的keil需要第二步——破解。第二步:破解破解有点麻烦,一定严格按照步骤一步原创 2022-06-05 08:54:31 · 7979 阅读 · 2 评论 -
STM32CubeMX的下载安装以及使用
使用标准库去建立工程模板以及配置外设时钟引脚,这些繁琐的操作都会在日常工作中浪费不少时间。尤其是对于新手,建立一个能用的工程要花费更多的时间,而且对于引脚的复用以及重映射,初期学习的时候非常容易搞混。很多时候程序无法奏效并不是程序写错,而是在初期配置引脚的时候没有考虑到上述的情况。STM32CubeMX是一个图形化的软件配置工具。用图形化的方式形成C程序,减少开发人员工作、时间和成本。安装STM32CubeMX,首先需要登录ST的官方网站Home - STMicroelectronics下载软件原创 2021-10-04 19:36:58 · 8925 阅读 · 2 评论 -
使用MQTT.fx连上阿里云
不知道为什么用技小新一直安装不上,文件没有损坏,安装缺少什么东西。不知道有没有和我有同样经历的朋友。原创 2021-07-28 19:56:59 · 474 阅读 · 0 评论 -
定时器1的PWM通道(PA8)发不出PWM波
今天遇到一个很郁闷的问题,项目要用到PA8,PA9,PA10三个引脚作为PWM输出,对应的是定时器的ch1,ch2,ch3。PA9和PA10是作为串口1的收发,因此避免用到串口1,选择用串口3.定时器1的初始化如下,没有什么问题。串口3的定义如下它俩在单个定义方面是没有问题的,放在mian函数中,问题来了先这样定义,软件仿真一下PWM波形可以看到PA8,PA9,PA10都有波形,串口3也可以正常发送,原以为结束了,结果下载到单片机上没反应,找了大半天原因,示波器一测,PA原创 2021-07-07 21:09:18 · 6033 阅读 · 6 评论 -
云卓T12&H12遥控器操作说明(基于SBUS协议)
SBUS协议遥控器通信部分我用的SBUS协议,简单介绍编程需要用到的参数:1.波特率=100K,数据位=8bit,停止位=2bit(编程的时候可以选择用9位数据+1位停止位),偶校验。2.协议字长25个字节,格式为[startbyte] [data1] [data2] … [data22] [flags] [endbyte],其中startbyte=0xf0,endbyte=0x003.编码,25个字节,有用的只有22个。需要把22个字节变成16个数据通道1使用data1中的8位,而data2使原创 2021-04-22 13:06:07 · 9197 阅读 · 0 评论 -
实现STM32与直流无刷电机的正反转
原理通俗来讲就是通过电生磁,通电导线绕在磁体上,相邻磁体缠绕方式不同,就会产生不同的极。通过同性相斥,异性相吸的原理,使得电机能转动。直流无刷电机原理这方面有很多文章讲解,如果对这方面了解不够清楚,可以在很多文章中找到。程序编写实现电机转动,必须知道相位,常见的三相电机为三相六状态。...原创 2021-04-21 21:32:48 · 3847 阅读 · 0 评论 -
RS485实现串口功能(含printf打印函数)
rs485和普通串口其实是差不多的,多了一个引脚,工作在半双工RX和TX表示接收和发送,rs485-de表示控制位,0等待接收,1表示要发送数据了。按照这个特性可以编写函数①定义结构体②RX浮空输入,TX复用推挽输出,RE485-DE推挽输出③波特率,中断优先级,接收模式等配置④使能中断,使能串口⑤中断函数写入操作具体实现void uart_init(u32 bound){ GPIO_InitTypeDef GPIO_InitStructure; USART_InitType原创 2021-02-04 10:39:12 · 4348 阅读 · 8 评论 -
STM32定时器1中断配置
①定义结构体(定时器+中断优先级)②开启定时器1的时钟③设置中断时间=预分频数*自动重装值/72000000(秒)④配置模式,然后初始化结构体⑤配置中断优先级⑥使能定时器1⑦在定时器1的中断函数中写入相关操作具体实现/*TIM1 定时器中断抢占优先级1子优先级1*/void TIM1_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_原创 2021-02-04 10:10:37 · 11128 阅读 · 10 评论 -
STM32用ST-LINK勾选Reset and Run后仍无法复位运行
由于换了电脑,就下载了keil的最新版,安装完函数库之后,发现烧录程序单片机没反应。期初以为是程序错了,一直改程序,把所有的都注释了,最后改成这种样子int main(void){ LED_Init(); while(1) {}}reset and run也勾选了结果还是没鸟用,一度怀疑自己,难道连LED灯都搞不定了吗。不是改硬件就是改软件,前前后后搞了两个小时。后来用开发板一试,因为开发板有复,我按了一下,竟然成功了,原来是复位问题。赶紧问了度娘,原来是新版本增加了pack这个选项,把原创 2021-01-28 18:40:24 · 5267 阅读 · 22 评论 -
基于STM32实现TMC5160实现简单转动(SPI)
在前几天讲了关于TMC5160的简单转动,那是只是独立模式,不需要SPI通信,配置几个引脚和方波就可以了。如果想了解模式三可以看我之前写文章,代码也在里面了文章链接:https://blog.csdn.net/u011895157/article/details/112390875这几天一直在研究TMC5160这个芯片,它和2160很像,很多配置都可以通用。因为这款产品网上资料很少,平时都是参考芯片手册,偶尔看看网上一些琐碎的经验,就这样一步步摸索出来。特点和优势(功能模块)2.1 StealthC原创 2021-01-20 22:04:00 · 10693 阅读 · 11 评论 -
如何用一个I/O引脚模拟串口发送数据
①了解串口工作原理,单片机想往串口发送数据,只需配置一个GPIO引脚即可,将引脚设为推挽输出,根据串口传送时序图,先拉高。②拉低电平作为传送的起始位,下面步骤非常关键,设置波特率,比如波特率为9600,那么时间间隔应该是1/9600=104us。注意这个间隔差一点点是没问题的。串口每次是发一位的,所以从最低位开始循环发送8次,就是一个字节,最后引脚拉高作为停止位。程序如下void send_B(u8 data){ u8 i; TXD=0; delay_us(104); for(i=0;i&原创 2021-01-11 19:31:19 · 1879 阅读 · 0 评论 -
基于STM32实现TMC5160步进电机简单转动
TMC5160三种模式TMC5160有三种模式模式一:SD_MODE=0,SPI_MODE=1。在该模式下,用户通过SPI接口来设置TMC5160的寄存器配置参数。再设置工作模式:速度模式和位置模式模式二:SD_MODE=1,SPI_MODE=1。在该模式下,用户通过SPI接口来设TMC5160的寄存器。TMC5160的功能和DRV8825类似,外界通过脉冲和方向引脚来控制步进电机运动模式三:SD_MODE=1,SPI_MODE=0。在该模式下,SPI接口失能,TMC5160的工作状态由CFG引脚配原创 2021-01-09 14:16:12 · 9297 阅读 · 5 评论
分享