- 博客(23)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 STM32G4 比较器COMPx(寄存器开发)
STM内部的比较器是模拟量的比较器,其与APB2时钟同步,在RCC时钟控制器中没有COMx时钟使能标志位,其时钟的使能与复位与SYSCLK同步。
2023-05-30 18:58:30
7974
2
原创 ESP32时钟笔记
Strapping 管脚在芯片的系统复位(上电复位、 RTC> 看门狗复位、欠压复位)放开的过程中, Strapping 管脚对电平采样并存储> 到锁存器中,锁存为“0”或“1”,并一直保持到芯片掉电或关闭。—————————————————————————————————————软件可以读取寄存器“GPIO_STRAPPING”中这 5 个管脚 strapping 的值。—————————————————————————————————————ESP32 共有 5 个 Strap
2021-08-30 21:17:17
14526
5
原创 STM32的USART编程
TE标志位要想使串口能够发送数据,必须置位TE标志位,并且在写入发送寄存器TDR之前置位。当TE位置位,会产生一个空闲帧。数据传输过程中,复位TE,会导致数据发送错误,波特率产生器会冻结。TXE状态标志位该位由硬件置位,它表示:数据已从 USART_TDR 寄存器移至移位寄存器,并且数据传输已经开始。USART_TDR 寄存器为空。下一个数据可以写入 USART_TDR 寄存器而无需覆盖以前的数据。如果 TXEIE 置位,会产生一个中断发送数据的配置顺序配置CR1寄存器的M
2021-07-03 12:35:15
1839
原创 STM32 模拟IIC源代码 多个I2C减少冗余代码
当设计中使用I2C的数量多于1个时,其底层I2C的代码逻辑都是一样的,只有IO口变了,为此还要复制粘贴、修改IO,不仅费时,而且还浪费片内资源,因此可以使用指针来重复执行IIC底层代码,实现一个代码,多个IO使用。Stm32f30x_SMLT_I2C.h#ifndef __Stm32f30x_SMLT_I2C_H#define __Stm32f30x_SMLT_I2C_H//========================= Include ===========================
2021-04-13 16:39:49
4084
8
原创 STM32的IIC笔记
STM32I2C 速率:标准模式 —— 100kHz快速模式 —— 400kHz快速模式+ —— 1MHzI2C 时钟源:SYSCLKHSI输出为I2CCLK隶属于APB1I2C的初始化I2C的软件复位当清除PE位(I2C_CR1),会产生I2C的软件复位。软件复位会重置下述寄存器:I2C_CR2 register: START, STOP, NACKI2C_ISR register: BUSY, TXE, TXIS, RXNE, ADDR, NACK
2021-01-26 15:55:08
1828
原创 STM32G474_PWM输出的抖动模式
看到哪记到哪抖动模式(Dithering mode)在查看手册的时候发现了这个模式,第一次看没看懂(可能是太困了),今天又看了一遍手册,大致理解了这个模式的作用。抖动模式的功能就是增加PWM的分辨率。手册的介绍是这样的:抖动模式PWM的有效分辨率可以通过启动抖动模式来提高,使能TIMx_CR1寄存器中的DITHEN位来启动抖动模式。这适用于CCR(占空比分辨率增加)和ARR(PWM频率分辨率增加)。其工作原理是在16个连续的脉宽调制周期内稍微改变实际的CCR(或ARR)值(增加或不增加一个
2020-09-25 10:14:17
5302
7
原创 STM32的外部中断(寄存器控制)——个人笔记
我感觉stm32的外部中断都是大同小异的,因此我以stm32g474为例,配置一下外部中断。举例引脚: PE5配置引脚为输入模式(GPIOx_MODER);配置触发模式(上升沿/下降沿);配置EXTI的中断屏蔽寄存器(EXTI_IMR);配置具体触发引脚(SYSCFG_EXTICR);配置中断允许(ISER);(当然也可以配置优先级分组,我这里不需要,因此省略)首先看EXTI的中断/事件框图:要想触发中断,首先经过“边沿检测器”,而边沿检测器需要配置上升沿检测还是下降沿检测。然后通过
2020-09-23 15:07:11
2061
原创 STM32G474时钟设置笔记(170MHz)
g474是M4内核,系统时钟的最大频率是170MHz。系统复位后,选择HSI16作为系统时钟。。但是我没有使系统频率达到170MHz,只设置到140MHz就上不去了,我现在还在考虑是不是电源没有配置好的问题,因此本文仅以配置到140MHz为例。(以下文章纯属个人理解,如果有不对的地方还请大佬指点,我会及时修改,必要时删除本文章,防止我误导他人)编写基础时钟树要想配置时钟首先必须要看明白时钟树。啊这。。。。我感觉比原来的时钟更人性化了哈,直接搞了个内部48MHz给USB啥的用了,这样就不用考虑怎
2020-09-15 16:47:45
6553
2
原创 两个ESP8266配置透传(不要其他设备开热点)
我研究啥都是皮毛,今天上午到手两个ESP,研究研究配置成透传模式。————————————————————————————这里有两个ESP,分别命名为ESP-A、ESP-B。ESP-A透传发送信息给ESP-B直接梳理下配置步骤:设置ESP-B为AP模式,并建立热点设置ESP-A为station模式,连接ESP-B的热点设置ESP-B为多机通信,并配置建立服务器ESP-A设置为单机通信,透传模式,连接ESP-B的服务器ESP-A发送SEND指令,进入透传……发送要发的数据ESP-A发送“
2020-09-14 15:30:20
4487
8
原创 C语言个人随笔
文章目录1. for语句的break2. 使用结构体查表,减少if语句3. 共同体+结构体 解决高低字节计算问题1. for语句的breakfor语句使用break,后续条件不会执行。for(u8 i=0x00;i<10;i++){ if(i==4) break;}printf("i=%d",i);结果为i=4。continue会执行后续条件。2. 使用结构体查表,减少if语句查表一般会省去大部分的if判断条件语句,使用结构体数组查表会使代码看上去不那么low。下面代码是直
2020-08-22 10:53:27
333
1
原创 MDK5(Keil 5)不能仿真的解决记录(FLASH Download Failed.)
入门STM32遇到的问题在工作之后,由于以前学的MSP430单片机不符合公司项目要求,因此需要转战stm32,使用stm32那么MDK5是很常用的stm32开发软件。开发人员最常用的功能就是仿真,因此我首先需要解决仿真问题。使用的仿真器是ST-Link V2 ,通过设置仿真器后发现不能进入仿真,点击仿真按钮会出错,提示:然后上网搜索,得到解决办法是BOOT0接1,BOOT1接0,然后就可了。应该是,反正我当天晚上没啥效果,第二天早上再开机试验就好用了,可能是没复位,大家可以试一下复位!这个问题就
2020-07-14 12:16:46
4302
1
原创 WiFi模块(ESP8266)获取时间、天气API AT指令串口调试
一直想做一个能够通过WiFi模块来获取 互联网获取 时间 和 天气 的时钟,网上大部分是获取时间的教程,对于获取天气的教程都是我看不懂的神奇语言,对于我这种不会java、html或者JSON什么乱七八糟的菜鸡来说就是天书,因此我只做出来能够获取网络时间的时钟,获取天气的没有实现。最近由于某些设计需要又重新研究了下,终于弄清楚获取天气信息的方法了,今天我这个菜鸡就来给大家分享下通过AT指令获取网络...
2020-04-30 16:08:03
17551
7
原创 GSM模块(SIM800L)收发短信 串口调试
其实我感觉应该不止用于SIM800L,其他GSM模块也大同小异,估计也差不多。总结下我调试模块遇到的问题,与大家分享一下,同时也梳理一下自己的思路好移植到单片机上。我也不打电话,所以模块的接线只用接4个脚,如下图(感觉不用说…)电源问题刚买来这个模块也没在意,也没接触过GSM模块,以为和其他普通模块一样,结果它是3.7~4.2V供电,这使我很茫然。亲测3.3V也可以使模块工作,但是貌似总...
2020-02-29 22:15:05
20373
28
原创 MSP430F149的OLED驱动(硬件SPI)
MSP430F149的OLED驱动(硬件SPI)试验主程序辅助程序msp430f149_init.cmsp430f149_init.hOLED驱动OLED_SPI.cOLED_SPI.h简单的显示图片、ASCII、数字。文字字库太大,懒得写,道理都是一样的。。。OLED程序在下面 可以直接跳过前面的程序,直接跳入“OLED驱动”程序具体原理其他博主都有介绍,可以参考其它文章,我就直接上代码...
2020-01-16 20:27:56
2290
STM32G474 FDCAN的经典CAN使用
2022-03-16
OLED_I2C的MSP430F149驱动(下载私信我,我改积分)
2020-03-31
OLED_SPI的MSP430F149硬件SPI驱动
2020-01-16
单片机预处理指令问题#define
2022-09-27
为什么同样的转子角度,正反转对应的霍尔位置值不一样?
2022-02-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人