STM32
文章平均质量分 50
学习来源b站和江科大stm32
道不知。
我很懒,还没有添加简介
展开
-
ESP8266获取网络时间 实时时钟
注意:这个代码存在的问题是比标准的北京时间慢两秒,因为每次调用网络API接口都会Delay2秒,所以可以只获取时间戳,加上两秒后再根据网上的代码将时间戳转换为具体的时间格式。可以看到发送完第九条指令后会收到如上图,所以整体思路:用串口进行通信,发送AT指令,获取到的数据存在Buf中,然后对Buf中的数据解析。6.发送指令AT+CIPSTART="TCP","api.k780.com",80 与服务器建立TCP连接;5.发送指令AT+CIPMUX=0设置模块为单路连接模式,模块默认为单路连接模式;原创 2023-08-15 15:43:49 · 5094 阅读 · 21 评论 -
实时时钟+闹钟
在江科大实时时钟的基础上添加闹钟的配置,参考。实现功能 :每隔time秒蜂鸣器响一次。前三个函数没有变,添加。原创 2023-08-12 16:11:22 · 233 阅读 · 0 评论 -
ADC模拟看门狗
如果被ADC转换的模拟电压低于低阀值或高于高阀值,AWD模拟看门狗状态位被设置。阀值位 于ADC_HTR和ADC_LTR寄存器的最低12个有效位中。通过设置ADC_CR1寄存器的AWDIE位 以允许产生相应中断。通过以下函数可以进行配置。使用光敏电阻模块,当模拟数值超过阈值,进入中断,即光线弱时led灯点亮。根据框图修改ADC一节的代码。添加看门狗功能代码和NVIC中断代码。原创 2023-08-03 15:45:25 · 1178 阅读 · 0 评论 -
读写BKP&实时时钟
再进行缩放 (32767-RTC_GetDivider())/32767.0 *999;用32767-RTC_GetDivider()使范围变为0-32767;没有备用电源,主电源断开后BKP中的数据是维持不了的。这样DIV由原来的32767-0变换为0-999数值表示毫秒。DIV的一个用途:如果要计数到毫秒等,按线性关系。思路(根据RTC基本结构)原创 2023-07-27 11:00:24 · 210 阅读 · 0 评论 -
USART
同步按时钟,异步按比特率单端信号。引脚的高低电平都是对GND的电压差,所以单端信号通信的双方必须要共地即把GND接在一起差分信号。靠两个引脚的电压差来传输信号串口通信。原创 2023-05-26 16:29:36 · 81 阅读 · 0 评论 -
BKP备份寄存器&RTC实时时钟
char *str;int main()//调用 time_t time(time_t*)获取系统时钟;//方法一//方法二//调用struct tm* gmtime(const time_t*)秒计数器转换伦敦时间(格林尼治时间)的函数//方法一对右边取内容//方法二将左边定义为指针类型。// 调用struct tm* localtime(const time_t*)秒计数器转换为日期时间(当地时间)//方法一对右边取内容。原创 2023-07-03 10:26:56 · 504 阅读 · 2 评论 -
软件SPI读写W25Q64&硬件SPI读写W25Q64
SPI模块包含通信引脚封装,初始化,SPI三个基本时序单元(起始,终止,交换一个字节)W25Q64通过调用SPI基本时序完成整个时序(写使能,页编程,擦除,读数据)主函数中调用W25Q64的硬件驱动层函数时序功能。原创 2023-06-24 16:40:56 · 1645 阅读 · 0 评论 -
SPI通信协议&SPI通信外设
推挽输出,高低电平都有很强的驱动能力,使得上升沿和下降沿都很迅速。当ss为高电平时,MISO默认为高阻态(高阻态相当于引脚断开,不输出任何电平)为了防止多个MISO冲突。原创 2023-06-24 15:00:51 · 920 阅读 · 0 评论 -
软件I2C读写MPU6050&硬件I2C读写MPU6050
初始化MPU6050将MyI2C封装,将发送数据接收数据,发送应答接收应答函数完成完整的I2C时序,进行对指定地址读,指定地址写。写6个基本时序单元的函数,然后将这些函数拼接起来写 发送数据接收数据,发送应答接收应答函数。原创 2023-05-31 15:03:08 · 379 阅读 · 0 评论 -
GPIO端口配置的8种模式
使用ADC时将引脚配置为模拟输入。原创 2023-05-31 15:02:53 · 351 阅读 · 0 评论 -
I2C通信协议&MPU6050
为了避免总线没协调好导致电源短路,配置为开漏输出,所有设备输出低电平不输出高电平,即右图。又为了避免高电平造成的引浮空,(第三点)总线外接上拉电阻(弱上拉)好处:1.避免短路问题;2.避免引脚模式频繁切换 开漏+弱上拉同时兼具输入输出。开漏模式输出高电平相当于断开引脚,在输入模式之前,可以输出高电平;3.这个模式下会出现“线与”现象,有一个或多个设备输出低电平总线低电平,全部为高电平才处于高电平,可用于多主机模式下时钟同步和总线仲裁。原创 2023-05-29 23:03:45 · 634 阅读 · 0 评论 -
串口发送&串口发送+接收&串口收发HEX数据包&串口收发文本数据包----USART
定义一个结构体变量但要分别调用 GPIO_Init(GPIOA,&GPIO_InitStructure);方法1:keil和串口助手都选择utf-8,且keil加上--no-multibyte-chars参数。方法2:都是用GB开头的中文编码格式,参数不用加。2. 多串口可以使用sprintf。头文件3. 封装sprintf。原创 2023-05-27 17:12:07 · 1995 阅读 · 0 评论 -
DMA数据转运&DMA+AD多通道----DMA直接存储器存取
定义一个变量在OLED显示屏上看到是0x2000开头的说明早SRAM上;在变量前加上const使其变成常量再查看地址以0x8000开头说明在Flash上,如果有一块不需要更改的数据较大的内容可以将它存储在Flash中以节省SRAM空间。对于外设寄存器它们的地址是固定的:先查寄存器所在外设的起始地址(第二章存储器映像),然后在外设的寄存器总表查偏移。结果是起始地址+偏移。定义一个外设结构体。原创 2023-05-23 23:42:12 · 155 阅读 · 0 评论 -
DMA直接存储器存取
所以DMA既是总线矩阵的主动单元,可以读写各种寄存器,也是AHB总线上的被动单元(CPU可以通过这条线路对DMA进行配置)如果是存储器到存储器的转运,把其中一个存储器的地址放在外设站点,将Flash或SRAM的地址写入外设的起止地址。软件触发:连续不断的触发DMA,把传输计数器清零,所以不能和自动重装器的循环模式同时使用。如果ADCA是单次模式,传输计数器可以不自动重装,如果是连续模式,可以使用自动重装。小数据传到大的中去,高位补零,大的传到小的高位舍弃。传输计数器:总共转运多少次,每转运一次计数器自减。原创 2023-05-21 11:34:49 · 476 阅读 · 0 评论 -
AD单通道&AD多通道----AD模数转换器
也不需要判断结束标志,将while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC) ==RESET);只需要触发一次,将ADC_SoftwareStartConvCmd(ADC1,ENABLE);对于连续转换,将ADC_InitStruct.ADC_ContinuousConvMode=ENABLE;通过参数传递来选择ADC通道。原创 2023-05-20 00:09:01 · 346 阅读 · 0 评论 -
ADC模数转换器
来源b站江科大stm32入门教程。原创 2023-05-19 16:34:28 · 678 阅读 · 0 评论 -
编码器接口测速----TIM编码器接口
可以通过Delay延时设置闸门和通过定时中断。一般选用定时中断闸门。原创 2023-05-18 14:56:45 · 99 阅读 · 0 评论 -
输入捕获模式测频率&PWMI模式测频率占空比----TIM输入捕获
来源B站江科大stm32入门教程。原创 2023-05-18 14:49:37 · 77 阅读 · 0 评论 -
PWM驱动LED呼吸灯&PWM驱动舵机&PWM驱动直流电机----TIM输出比较
为什么led为PA0引脚时要用TIM2的CH1引脚:在下标可以看出默认复用功能的引脚对应关系。同时也有重定义功能需要用AFIO配置,如果把引脚重定义到PA15,需要用到函数GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);然后再查看手册表43 TIM2复用功能重映像选择合适的参数。原创 2023-05-17 11:00:06 · 185 阅读 · 0 评论 -
定时器定时中断&定时器外部时钟----TIM定时中断
来源B站江科大stm32入门教程时钟源选择时基单元用TIM_TimeBaseInit()函数中断输出控制用TIM_ITConfig()函数NVIC用上一节的NVIC_Init()函数运行控制用TIM_Cmd()函数写预分频值的函数TIM_PrescalerConfig()改变计数器的计数模式TIM_CounterModeConfig()自动重装器预装功能配置TIM_ARRPreloadConfig()原创 2023-05-10 22:08:22 · 660 阅读 · 2 评论 -
对射式红外传感器计次&旋转编码计次----EXTI外部中断
来源B站江科大stm32入门教程根据EXTI基本结构(上个博客)配置。原创 2023-05-10 00:06:17 · 163 阅读 · 0 评论 -
按键控制LED&光敏传感器驱动蜂鸣器----GPIO输入
来源B站江科大stm32入门教程。原创 2023-05-09 00:10:04 · 187 阅读 · 2 评论 -
TIM输出比较&TIM输入捕获&TIM编码器接口
来源B站江科大stm32入门教程。原创 2023-05-13 21:03:43 · 507 阅读 · 0 评论 -
EXTI外部中断,TIM定时中断
注意:支持所有GPIO口,但相同的Pin不能同时触发中断NVIC是STM32中用来管理中断,分配优先级的使用NVIC统一管理中断,每个中断通道都拥有16个可编程的优先级可对优先级进行分组,进一步设置抢占优先级和响应优先级。原创 2023-05-08 16:44:13 · 428 阅读 · 0 评论 -
LED闪烁&LED流水灯&蜂鸣器-----GPIO输出
/外设时钟//配置端口//PP高低电平都有效,OD低电平有效//初始化while(1)//用GPIO的常用函数完成。原创 2023-05-04 12:59:58 · 312 阅读 · 0 评论 -
STM32新建工程
6、工程选项,Debug,下拉列表选择对应调试器,Settings,Flash。4、工程选项,C/C++,Include Paths内声明所有包含头文件的文件夹(比如上面新建的文件keil软件并不知道)3、工程里对应建立Start、Library、User等同名称的分组,然后将文件夹内的文件添加到工程分组里。2、工程文件夹里建立start、Library、User等文件夹,复制固件库里面的文件到工程文件夹。1、建立工程文件夹,Keil中新建工程,选择型号。在步骤2中根据此表选择启动文件。原创 2023-05-03 15:47:11 · 250 阅读 · 0 评论