
手撸HAL库+CubeMX
文章平均质量分 86
手撸HAL库+CubeMX
浅陌pa
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RTC:实时时钟
若发生了侵入事件,会将BKP中的数据清除(主电源断电,侵入事件也有效)。侵入事件检测引脚为PC13且检测电平。BKP的读写需要RTC的配置,但是不需要开启LSE的时钟源。只需要打开RTC时钟+配置RTC总控结构体。当侵入事件产生后,应该先关闭侵入检测。需要侵入检测则重新调用API函数开启侵入检测。③stm32f1xx_it.c文件的代码如下。①RTC.c文件需要修改的代码如下。②main.c文件的代码如下。②main.c文件的代码如下。①RTC.c文件的代码如下。①RTC.c文件的代码如下。原创 2025-01-03 11:18:12 · 780 阅读 · 0 评论 -
CRC:循环冗余校验
CRC32:多项式是X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+1,对应数字是0x104C11DB7。常见的CRC校验:CRC8,CRC16,CRC32。CRC12:多项式是X12+X11+X3+X2+1,对应的数字是0x180D。CRC16:多项式是X16+X12+X5+1,对应的数字是0x11021。CRC16:多项式是X16+X15+X2+1,对应的数字是0x18005。CRC8:多项式是X8+X5+X4+1,对应的数字是0x131。原创 2025-01-02 18:36:08 · 3549 阅读 · 0 评论 -
SPI(二):主从通信
当接受到主机发送来的数据的同时,也会把WData的数据发送给主机。④stm32f1xx_it.c文件的代码如下。④stm32f1xx_it.c文件的代码如下。④stm32f1xx_it.c文件的代码如下。③main.c文件的代码如下。③main.c文件的代码如下。①SPI.c文件的代码如下。②SPI.h文件的代码如下。①SPI.c文件的代码如下。②SPI.h文件的代码如下。①SPI.c文件的代码如下。②SPI.h文件的代码如下。①SPI.c文件的代码如下。②SPI.h文件的代码如下。原创 2025-01-01 16:57:00 · 588 阅读 · 0 评论 -
SPI(一):W25Q64的使用
有关SPI的基础知识请参考标准库入门教程。原创 2025-01-01 11:42:03 · 934 阅读 · 0 评论 -
I2C(一):存储器模式:stm32作为主机对AT24C02写读数据
I2C的DMA非常的难用,需要配置I2C的NVIC中断和配置I2C的中断函数。④stm32f1xx_it.c文件的代码如下。③main.c文件的代码如下。③main.c文件的代码如下。③main.c文件的代码如下。③main.c文件的代码如下。①I2C.c文件的代码如下。②I2C.h文件的代码如下。①I2C.c文件的代码如下。②I2C.h文件的代码如下。①Key.c文件的代码如下。①I2C.c文件的代码如下。②I2C.h文件的代码如下。①I2C.c文件的代码如下。②I2C.h文件的代码如下。原创 2024-12-30 14:13:29 · 1156 阅读 · 0 评论 -
ADC(三):注入组的使用
有关ADC的基础知识请参考标准库入门教程。原创 2024-12-28 20:00:10 · 745 阅读 · 0 评论 -
ADC(二):外部触发
有关ADC的基础知识请参考标准库入门教程。原创 2024-12-27 20:38:30 · 2022 阅读 · 0 评论 -
ADC(一):软件触发
有关ADC的基础知识请参考标准库入门教程。原创 2024-12-27 12:45:37 · 864 阅读 · 0 评论 -
04:(手撸HAL+CubeMX)DMA篇
如上代码:HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength);这个函数一般用于内存直接的搬运,因为外设搬运有专门的外设DMA函数。实验:DMA将DataA数组中的数据搬运到DataB数组中,然后通过串口1输出。实验:使用串口UART1的DMA进行发送数据。实验:使用DMA进行串口的不定长数据的接收。原创 2024-11-27 15:25:02 · 313 阅读 · 0 评论 -
03:(手撸HAL+CubeMX)串口UART篇一
然后CPU就会进入if语句里面去执行关闭串口接收中断。然后执行全部接收完成回调函数。若此时串口的DR还有数据,CPU也不会在进行将DR中的数据搬运到数组里了。原创 2024-11-26 20:56:12 · 721 阅读 · 0 评论 -
02:(手撸HAL+CubeMX)GPIO篇
实验:PA0引脚配置为Event Out模式,当PB0按键按下时,进入中断执行SEV指令,PA0输出一个高脉冲。实验:通过按键PB0按下产生一个下降沿事件,然后唤醒通过WFE指令进入睡眠模式的单片机。在使用软件触发的同时,也能使用硬件触发,硬件触发会打断软件触发,实验:通过轮询的方式检测PB0按键,来控制LED的亮灭。实验:通过轮询的方式检测PB0按键,来控制LED的亮灭。实验:通过中断的方式检测PB0按键,来控制LED的亮灭。实验:通过中断的方式检测按键,来控制LED的亮灭。原创 2024-11-15 19:38:23 · 945 阅读 · 0 评论 -
01:(手撸HAL+CubeMX)时钟篇
我们将STM32通过STLink连接到电脑,打开仿真,查看结果。所以系统滴答定时器中断服务函数里面是:每隔1ms进入中断,实现uwTick加1一次。综上:使用Cube生成的对时钟树的配置代码和手撸时钟树配置的代码毫无区别。综上:HAL_Init()最主要的功能就是配置系统滴答定时器1ms中断。综上:通过SysInit()函数后,选择的是HSI作为时钟树的时钟源。在HAL库开发中,主函数中首先就调用的是HAL_Init()函数。①RCC_Init.c文件的代码如下。原创 2024-11-14 20:21:03 · 847 阅读 · 0 评论