
stm32内部外设驱动
文章平均质量分 50
stm32内部的外设驱动
Mark_md
不想做全栈的程序猿,不是一个好硬件工程师
展开
-
STM32烧录HEX、BIN文件,使用ST-LINK
安装ST提供的烧录软件 STM32 ST-LINK Utility。下载将STM32设备的 SWDIO、SWCLK、3V3、GND 与 ST-LINK 相连。(大多数情况下不需要连接RESET,如果实在不能正常烧录,再尝试着将RESET连接)(注意:不建议在烧录固件时,使用设备的总电源,防止可能导致设备受损的意外发生)打开 STM32 ST-LINK Utility。File - Open file,打开要烧录的 HEX 或者 BIN 文件。将ST-LINK 的USB插入电脑。..原创 2021-06-16 22:47:28 · 21856 阅读 · 10 评论 -
stm32F4修改时钟频率,更换为8MHz晶振
stm32F4修改时钟的方法和stm32F103修改时钟的方法不大一样,毕竟库都换了嘛,一个F1的库一个F4的库而且F1的库默认晶振时钟就是8MHz,给我们提供了很多的方便。而且F1的库写法也很直观,输入频率,自动得出倍频过程F4要修改时钟,首先确定外部晶振频率如果是25MHz外部晶振,需要内部168MHz的运行速度。那么不用更改,因为stm32F4的标准库中默认就是25M晶振,...原创 2020-06-21 19:18:17 · 8022 阅读 · 0 评论 -
stm32 CRC-16校验代码,单片机ModBUS-CRC16校验
stm32系列内部均带有硬件CRC,不过为了方便移植,建议使用纯计算的方式,进行CRC-16计算。可用于ModBUS通信。提供两种实现方法的代码:1. 实时计算 CRC-16(耗时多)(这种方式耗时会比较多,优点是占用Flash、RAM小)//CRC-16码(modbus)校验//addr:需要校验的字节数组//num:需要校验的字节数//返回值:16位的CRC校验码u16 crc16(u8 *addr,u8 num){ int i,j,temp; u16 c...原创 2020-09-15 16:14:52 · 12753 阅读 · 5 评论 -
I2C与SPI通信总线协议
仅以寄存器地址为8Bit的器件为例:(例如MPU6500)原创 2020-09-10 16:03:35 · 760 阅读 · 0 评论 -
keil修改字体、文本颜色、背景颜色,global.prop使用
keil 空乏的文本颜色和背景严重影响使用感,下面教大家如何修改。自定义字体颜色和背景,点击 ” Configuration ”(小扳手图标) - Colors & Fonts,主要修改 All Editors 和 C/C++ Editor files。而IDE的字体颜色等配置,是存储在 global.prop 文件中。可以下载别人现成的global.prop,到安装目录/UV4下粘贴替换掉,重启IDE修改生效。...原创 2020-09-04 08:47:03 · 8957 阅读 · 299 评论 -
stm32 Keil编译后查看代码/内存占用空间,Flash/RAM占用大小,Code-Data,RO-Data,RW-Data,ZI-Data是什么含义
1. 查看码Flash/内存RAM占用大小.map文件2.Code-Data,RO-Data,RW-Data,ZI-Data 分别是什么Code-Data:代码占用的空间大小(占用空间为内部Flash。单片机运行时,代码是在Flash中运行的,跟电脑/linux嵌入式不同)RO-Data:只读常量大小(const常量,#define宏常量。一般用于不需要更改的数据)RW-Data:初始化了的变量大小ZI-Data:没有初始化的变量占用Flash:Tota...原创 2020-08-09 19:02:13 · 17041 阅读 · 0 评论 -
MDK、keil复制中文注释乱码
keil mdk与其他文件复制代码时,中文注释容易出现乱码。避免这种现象的修改方式为:Configuration - Encoding - 设置为 " Chinese GB2312" - OK相同一段代码,修改前与修改后对比。//¼Ó¼ÆµÄ¹ßµ¼ÐÅÏ¢£¬µØÀí×ø±êϵµÄ¸÷Öá·ÖÁ¿£¬Ëٶȣ¬Î»ÒÆstruct InerNavData{ float DCM[3][3]; //µØÀí×ø±êϵ¸ù¾Ý¼ÓËٶȼƽâËã³öµÄ¸÷Ö...原创 2020-07-30 21:11:53 · 1470 阅读 · 0 评论 -
stm32F4的ADC+DMA+Timer,实现2MHz连续采样。1LSB分辨率,极低噪声。
1. stm32F4的ADC+DMA+Timer的实现原理stm32F4的ADC参数原创 2020-07-21 11:04:52 · 11133 阅读 · 12 评论 -
stm32F1的 PA13/PA14/PA15/PB3/PB4 作为普通引脚使用
代码链接:https://blog.youkuaiyun.com/Mark_md/article/details/107411081原创 2020-07-17 17:11:38 · 1678 阅读 · 0 评论 -
stm32F1的JTAG、SWJ作为普通引脚使用。禁用JTAG、SWJ。
stm32F1的JTAG、SWJ引脚,为PA13/PA14/PA15/PB3/PB4。单片机复位后,默认功能为JTAG、SWJ。而实际使用中,一般只使用 SWCLK、SWDIO这两个引脚做 Debug。其余的引脚可以空出来,重新定义为普通的 IO 来使用。PA13/PA14/PA15/PB3/PB4 想要定义为 普通IO,需要进行一些额外的重定义配置。1. 手册对JTAG、SWJ管脚的定义2. 引脚重映射分为以下几种情况#define GPIO_Remap_...原创 2020-07-17 17:10:47 · 6377 阅读 · 4 评论 -
stm32的串口DMA空闲中断接收不等长数据,stm32F1的usart1-DMA-IDLE收发
stm32的DMA收发原理,见另一篇:https://blog.youkuaiyun.com/Mark_md/article/details/107243054stm32F1的串口DMA和stm32F4的大同小异,使用时要区分通道和数据流区别。直接上代码usart.c#include "usart.h"uint8_t Uart1_Rx_Buff[DMA_UART1_RX_SIZE];uint8_t Uart1_Tx_Buff[DMA_UART1_TX_SIZE];uint16_t Uar.原创 2020-07-13 17:04:27 · 963 阅读 · 0 评论 -
stm32的串口DMA空闲中断接收不等长数据,stm32F4的usart2-DMA-IDLE收发
1. 串口为什么要使用DMA?好处?stm32单片机的串口没有FIFO,使用字节中断的方式去接收,会频繁进入中断,影响系统实时性。好在stm32的串口可以级联DMA使用,在大数据量连续发送/接收的场合尤为实用。这次就有一个活儿,要同时使用6路串口:1路做485通信,其他5路连接传感器。传感器的默认数据流帧率为100Hz,每帧10~30字节不等。如使用字节中断的接收方式:光是5路传感器,每秒就能进入中断1万次。再跑个RTOS和几个任务,怕是很拖累任务的执行。而使用串口+dma的方式:可以把5路原创 2020-07-13 10:39:12 · 2884 阅读 · 3 评论