stm32
文章平均质量分 57
根据手册一点一点抠
曹乐乐爱学习
一个刚毕业没多久,还在Linux和STM32边缘徘徊的小菜鸡,心血来潮,记录一些琐碎的自学笔记
另外:我上传的所有资源,都可以免费提供,只需要私信或者评论留言就好了
展开
-
keil中使用软件debug功能查看printf输出结果
keil5软件调试,使用printf向Debug(printf) Viewer窗口打印结果原创 2022-08-13 23:27:38 · 10203 阅读 · 1 评论 -
10、串口DMA(第9写的太烂了,稍微整理一下)
UART1_DMA.cchar Uart1_DMA_Rxdata[DMA_DATA_LEN];char Uart1_DMA_Txdata[DMA_DATA_LEN];u16 DMA_Rx_LEN = 0;void Usart1_Config(u32 bound){ GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART1_nitStructure; NVIC_InitTypeDef USART1_NVIC_In..原创 2022-01-16 23:32:16 · 326 阅读 · 0 评论 -
STM32启动模式
原创 2022-01-12 00:06:01 · 141 阅读 · 0 评论 -
9、DMA原理
STM32 最多有 2 个 DMA 控制器(DMA2 仅存在大容量产品中), DMA1 有 7 个通道。 DMA2 有 5个通道。每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个 DMA 请求的优先权。小容量产品:有1个DMA----------DMA1有7个通道大容量产品:有2个DMA----------DMA2有5个通道DMA就是将数据从一个区域复制到另一个区域,不占用CPU资源。1、 每个通道都直接连接专用的硬件DMA请求,都支持软件触发,通过软件原创 2022-01-16 02:46:24 · 2441 阅读 · 0 评论 -
8、STM32端口复用与映射(未完成...)
1、所需资料:《STM32F103ZET6.pdf》和《STM32中文(参考手册).pdf》默认功能都是IO,有其他功能就是复用。如串口1的PA9,PA10,就属于复用功能。重映射(Remap):一个引脚的功能,可以被映射到其他引脚。以串口1为例(注意有些是有引脚要求的):引脚重映射配置过程:1、使能GPIO时钟(重映射后的IO)2、使能功能外设时钟(串口1)3、使能AFIO时钟(必须使能AFIO时钟0)RCC_APB2PeriphResetCmd(RCC_APB..原创 2022-01-09 22:43:40 · 295 阅读 · 0 评论 -
7、电源管理
1、睡眠模式睡眠模式是内核的东西,需要参考《Cortex‐M3 权威指南》和《STM32F10xxx参考手册》以SLEEP-ON-EXIT为例进入睡眠模式时,需要满足:当SLEEPDEEP=0,SLEEPONEXIT=1时,等待wfi/wfe进入睡眠void SLEEPON_EXIT_mode(void)//内核的东西,内核找{ RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE); SCB->SCR &= ~.原创 2022-01-09 00:53:26 · 796 阅读 · 0 评论 -
6、CRC校验
循环冗余校验(CRC)计算单元是根据固定的生成多项式得到任一32位全字的CRC计算结果● 使用CRC-32(以太网)多项式:─ X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 + X8 + X7 + X4 + X2 + X +1可以计算32位以下的数据:(高位在左,低位在右) if(USART1_RX_State & (1<<15))//接收到一组数据 { len = (USART1_RX_State & 0x原创 2022-01-08 17:53:23 · 1047 阅读 · 0 评论 -
5、串口通信
一、STM32F1串口资源(5个串口-3个同步,2个异步)串口号 发送(TX) 接收(RX) USART1 PA9 PA10 USART2 PA2 PA3 USART3 PB10 PB11 UART4 PC10 PC11 UART5 PC12 PD2 二、异步串口通信数据构成:起始位-0+数据位(8bit)+[奇偶校验位(第9bit)]+停止位-1(1/1.5/2bit)什么是奇偶校验:奇校.原创 2021-12-26 22:41:04 · 759 阅读 · 0 评论 -
4、SysTick定时器的理解
参考文档《Cortex-M3权威指南(中文).pdf》1、什么是systick?手册解释: RCC通过AHB时钟(HCLK)8分频后作为Cortex系统定时器(SysTick)的外部时钟。通过对SysTick 控制与状态寄存器的设置,可选择上述时钟或Cortex(HCLK)时钟作为SysTick时钟。系统滴答定时器是一个非常基本的倒计时定时器,用于在每隔一 定的时间产生一个中断,即使是系统在睡眠模式下也能工作,并且在向量表中有它的一 席之地。。它使得 OS 在各...原创 2021-12-19 01:02:49 · 11034 阅读 · 0 评论 -
3、SystemInit时钟配置分析(建议看着时钟树来分析)
1、新建工程之后,第一个最重要的文件就是启动文件” startup_stm32f10x_xd.s”,它是汇编文件,主要做了:1)初始化堆栈内存空间2)设置PC寄存器的地址指向Reset_Handler,即上电便运行复位程序3)设置向量表,中断服务函数入口地址4)配置系统时钟SystemInit5) 运行外部的函数,LDR R0, =__main;即:开始运行c库,并最终调用用户编写的C程序main函数3、...原创 2021-12-18 19:27:40 · 1249 阅读 · 3 评论 -
2、时钟树笔记
STM32有5个时钟源 :HSI_RC 内部高速RC ≈ 8MHzHSE_OSC 外部高速时钟 =(4-16)MHz,一般使用8MHzLSE_OSC 低速外部时钟 ≈ 32.768KHz(给RTC使用)LSI_RC 内部低速RC振荡器 ≈40KHz(给RTC使用,给独立看门狗使用)PLL锁相环(倍频器),HIS/2,HSE可用(最高不能超过72MHz)1.当HSI作为PLL时钟的输入时,最高的...原创 2021-12-18 00:28:45 · 399 阅读 · 0 评论 -
1、STM32-新建工程
一、寄存器版本:1、打开keil52、Project----new_project---输入工程名、芯片型号(前提是安装过芯片包)、保存路径3、添加启动文件(从官方库中找)STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm根据芯片型号选择容量c8—选择中等容量:MD(startup_stm32f10x_md.s)4、在新建工程目录下,新建..原创 2021-12-18 00:19:01 · 603 阅读 · 0 评论 -
0、纠正之前文章中的理解偏差(持续更新...)
1、在时钟树中,对HCLK的理解偏差SYSCLK经过AHB分频器分频出来以后,并行输出到多个地方。该节点的时钟信号,不能说是HCLK,HCLK是AHB总线上的时钟信号=输入内核的时钟=存储器和DMA的时钟HCLK与APB1预分频器、APB2预分频器的输入时钟,是同一个来源:AHB预分频器输出的时钟。即:AHB总线时钟、HCLK、APB1预分频器的输入时钟、APB2预分频器的输入时钟,他们三者是平行关系。同时,也说明了内核时钟(HCLK)一定≤...原创 2021-12-18 22:52:35 · 149 阅读 · 0 评论