
STM32
文章平均质量分 54
主要是对Stm32开发的一些见解,有错误,求大家指正,一起共同进步
浮若于心
一生,求知求解.....
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
GPIO模拟串口TX与RX,波特率115200
使用单片机的GPIO口去模拟串口的TX与RX进行数据的发送和接收处理,波特率可使用115200原创 2023-02-02 19:17:41 · 3462 阅读 · 0 评论 -
GPIO引脚的模式设置:开漏、推挽、拉高、拉低、中断输入、串行通信、模拟输入输出、容错输入、PWM输出。过零检测介绍。
开漏输出(软件):将GPIO口设置为开漏输出模式,可以实现开漏输出控制方式,输出电平只能被拉低,而不能被拉高。在使用开漏输出时,需要外部接上一个上拉电阻,将输出电平拉高到高电平。开漏输出常用于驱动I2C总线、LED灯等场景中。 推挽输出(软件):将GPIO口设置为推挽输出模式,可以实现推挽输出控制方式,输出电平可以被拉高或拉低。在使用推挽输出时,不需要外部电阻。推挽输出常用于驱动电机、继电器等场景中。原创 2023-05-10 20:40:55 · 5894 阅读 · 0 评论 -
探索Keil常用调试方法,由浅入深,逐步经典,令人着迷
前面几点一般人知道的操作1,变量添加到Watch作用:可以在调试过程中随时看到变量值的变化操作方法:选中变量,右键成功添加:这个是16进制显示,转为10进制显示:把勾选去掉:2,变量添加到memory作用:可以在看到变量地址的情况下看到变量数据的变化。添加成功后:可以通过上面添加的Watch知道该变量的起始地址是没有问题的。后面的就是每字节的数据,最大为FF算出来还是跟Watch中看到数据一样。这个是按照低地址位放在地位,比...原创 2021-07-20 19:37:06 · 15885 阅读 · 0 评论 -
KEIL编译器设置RAM数据复位后不被初始化数据
第一种,编译器设置:这样设置RAM2,,,前提是你的RAM空间要有0x8200的大小,,,我只是举一个例子。在用at指定空间就可以了,比如:unsigned char APP_MAC[6] __attribute__((at(0x20008000)));这样只要不带电属于热启动就不会被初始化第二种:1. 修改分散加载文件sct,增加一个名为MYRAM的执行节,该执行节起始地址为0x1000A000,长度为0x2000字节(8KB),由UNINIT修饰:在sct文件中这..原创 2021-04-20 21:08:52 · 4080 阅读 · 0 评论 -
HEX文件解析
开头数据::020000041004E6:1000000000800020119B0510AD8D0510A98F0410F4每行从“:”(0x3a)开始,这从文件内容可以看出。以回车键结束(0x0d,0x0a),每行以换行结束。回车换行的十六进制不会显示。现在开始解析:第一句后面的数据位数 数据起始地址 数据类型或叫功能码 数据 校验位 0x02 0x00 0x00 0x04 0x10 0x04 0xE6 数据类型共有.原创 2021-04-02 15:45:35 · 1209 阅读 · 2 评论 -
将多个HEX文件合并成一个HEX文件通过KEIL进行烧录
首先这多个HEX文件自己已经偏移好了,hex文件已经记录了偏移的地址信息。用记事本打开第一个hex文件:test1.hex:020000040000FA文件头记录:1000000018F09FE518F09FE518F09FE518F09FE5C0程序区开始…………(中间的省略)……:080690002C2100000000000015程序区结束:0...原创 2021-04-02 12:04:05 · 3405 阅读 · 2 评论 -
ST芯片使用串口 + DMA接收 + 空闲中断处理,有USART1和LPUART
普通串口:USART1首先是DMA初始化//DMA初始化void MX_DMA_Init(void) { /* Init with LL driver */ /* DMA controller clock enable */ LL_AHB_EnableClock(LL_AHB_PERIPH_DMA); /* DMA interrupt init */ /* DMA_IRQn interrupt configuration */ NVIC_SetPriority(原创 2021-03-24 20:02:28 · 1558 阅读 · 0 评论 -
STM32中独立看门狗的配置
我自己使用的是独立看门狗由内部专门的 32Khz 低速时钟(LSI)驱动。主要自己查手册看LSI是多少就是多少。LL库中的配置:void MX_IWDG_Init(void){ /* Enable APB0 indipendent Watchdog peripherals clock */ LL_APB0_EnableClock(LL_APB0_PERIPH_WDG); /* Force WDG peripheral reset */ LL_APB0_ForceRe.原创 2021-02-24 10:23:52 · 1357 阅读 · 0 评论 -
C语言STM32中时间戳的简单配置
头文件:#include "time.h"在time.h文件中找到:struct tm { int tm_sec; /* seconds after the minute, 0 to 60 (0 - 60 allows for the occasional leap second) */ int tm_min; /* minutes after the hour, 0 to 59 */ int tm_hour; /* .原创 2021-02-24 10:07:56 · 3582 阅读 · 0 评论 -
ST-Bluenrg-lp芯片编程因为地址重叠导致常量值被更改
所遇问题:定义的结构体,用于限制范围大小。类似于:struct test SysParaMax = { .test1= 5000, .test2 = 5000, .test3 = 100, .test4 = 600,}struct test SysParaMin = { .test1= 0, .test2 = 0, .test3 = 0, .test4 = 0,}结果作为范围限制使用的时候,因为debug才查看到的原创 2021-01-08 21:12:32 · 644 阅读 · 2 评论 -
keil报错:Symbol set_value multiply define和 incomplete type is not allowed和error: #65: expected a “;“
Symbol set_value multiply define: 这个错误意味着set_value这个符号(通常是变量或函数名)被多次定义了。在C/C++中,每个符号只能有一个唯一的定义。这可能是由于在多个源文件中重复定义了set_value导致的。原创 2020-12-08 22:40:14 · 2054 阅读 · 0 评论 -
STM32F407写超声波传感器HC-SR04程序
1.给超声波模块接入电源和地。2.给trig输入一个长为20us的高电平方波3.输入方波后,模块会自动发射8个40KHz的声波,echo的电平会由0变为14.当超声波返回被模块接收到时,回波引 脚端的电平会由1变为0。定时器记下的这个时间即为超声波由发射到返回的总时长。5.根据声波在空气中的速度为344米/秒,即可计算出所测的距离。以下为程序:#include "stm...原创 2019-03-07 12:53:21 · 9366 阅读 · 48 评论 -
STM32F407使用串口3获取攀腾G7的PM2.5数据
STM32F407使用该程序主要是复用串口3用来接收PM2.5所发出的数据,然后获取所需要的pm2.5的值,引脚接口为pb11和pb10,5v电压。void uart3_init(u32 bound){ GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_AHB1PeriphClo...原创 2020-10-28 17:01:48 · 1167 阅读 · 5 评论 -
解决更换芯片原程序不能正常编译问题 和问题ErrorFlash Download failed Cortex-m3
当从这个芯片更换为这个芯片时编译原程序后出现了这个问题解决办法为:把其中的STM32F10X_HD,删掉编译成功烧入时出现:第一种可能没有正确添加点击add正确添加:第二种里面没有合适的则首先需要安装一个跟自己芯片匹配的一个环境库,比如:安装好后在C/C++添加路径:再看就有需要添加的了:最后烧入成功:...原创 2020-06-23 14:29:32 · 904 阅读 · 0 评论 -
设置PWM占空比中TIM_SetCompare1,TIM_SetCompare2,TIM_SetCompare3,TIM_SetCompare4分别对应引脚和ADC通道对应引脚
这个函数TIM_SetCompare1,这个函数有四个,分别是TIM_SetCompare1,TIM_SetCompare2,TIM_SetCompare3,TIM_SetCompare4。位于CH1那一行的GPIO口使用TIM_SetCompare1这个函数,位于CH2那一行的GPIO口使用TIM_SetCompare2这个函数。使用stm32f103的除了tim6和tim7没有PWM...原创 2020-06-04 11:39:46 · 28657 阅读 · 0 评论 -
stn32cubemx生成代码有问题的解决方法
问题1,生成代码时,有显示你的生成目录还说一个问题的问题,就是环境没装好,要装一个java的环境即使你本来已经装了这个环境,但是还是出现了同样的问题,那就装我这个版本,我刚才使用这个版本就成功了问题2,就是要下相应的固件manage enbadded software packages这样基本就没问题了,不过网上还经常说,生成目录的时候,相应的路径和文件名最好改成英文...原创 2020-04-23 23:14:11 · 1493 阅读 · 0 评论 -
STM32F407控制180度舵机
其中主要分为两部分,时钟的初始化和主函数的控制部分。时钟的初始化:选用TIM14时钟,F9引脚作为信号控制引脚void TIM14_PWM_Init(u32 arr,u32 psc){ GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBas......原创 2020-04-05 15:04:43 · 4050 阅读 · 65 评论 -
stm32使用sd卡保存数据不擦除原本数据,数据格式换行
驱动sd卡的程序,主要是使用原子的FATFS程序。首先是向卡里写数据和读数据的操作。这些定义一般都在ff.h文件中先定义好FIL fil;FRESULT res;UINT bww;char buf[100];写读操作: res=f_open (&fil,"0:/message.txt", FA_OPEN_ALWAYS|FA_WRITE); ...原创 2020-02-27 14:05:03 · 2886 阅读 · 2 评论