https://liu-yaohua.github.io

0%

STM32的ADC资源概述

STM32F103ZE芯片(144脚)中有ADC1ADC2ADC3共3个12位逐次逼近型模数转换器,具有18个测量通道,可测量16个外部2个内部信号源(内部温度和内部参考电压)。这2个内部信号源只能连接到ADC1
ADC的各个通道的A/D转换可以单次连续扫描间断模式执行。
A/D转换结果以左对齐右对齐的方式,存储在16位规则组或者注入组数据寄存器中。

阅读全文 »

串行接口相关知识点

并行通信、串行通信的概念。
单工、半双工、全双工的概念。
异步串行通信:通信双方在没有同步时钟的前提下,将一个字符(包括特定的附加位)按位进行传输的通信方式。
波特率:每秒钟传输的二进制位数,如9600bps。
TTL电平<—->RS232:MAX3232 SP3232
串口<———>USB接口:CH340 CP2012

STM32芯片的串口UASRT功能十分强大,但对于日常编程而言,使用最多的还是异步串行通信。
串口1:USART1_TXPA9复用,USART1_RXPA10复用。
串口2:USART2_TXPA2复用,USART2_RXPA3复用。

阅读全文 »

定时器的基本概述

通过滴漏漏沙瓶这两个例子简单讲述定时器的基本工作原理。
STM32的常见的定时器资源: 系统嘀嗒定时器SysTick看门狗定时器WatchDog实时时钟RTC基本定时器通用定时器高级定时器

阅读全文 »

STM32的中断系统

理解中断、中断源中断向量、中断优先级、中断服务函数…等基础概念。
ARM Cortex M3内核支持256个中断,包括16个内核中断和240个外设中断,拥有256个中断优先级别。
STM32的中断通道可能会由多个中断源共用。这就意味着,某一个中断服务函数也可能被多个中断源所共用。所以,在中断服务函数的入口处,需要有一个判断机制,用以辨别是那个中断触发了中断。
STM32微处理器的内核中有一个NVIC(嵌套向量中断控制器)的设备,它对中断进行统一的协调和控制,其中最主要的工作就是控制中断通道的使能和确定中断的优先级。
STM32中有2个优先级的概念:抢占优先级响应优先级,每个中断都需要指定这两种优先级。
如果两个抢占优先级相同的中断同时到达,NVIC会根据他们的响应优先级高低来决定先处理哪一个。如果两个同时到达的中断的抢占优先级和响应优先级都相等,则根据中断的自然排位顺序来决定响应哪一个。

阅读全文 »

按键扫描的基本原理

按键信号是如何识别的?
一般来说,按键的两个引脚的一端通过电阻上拉到高电平,另一端则接地。
没有按键按下的时候,输入引脚为高电平,当有按键按下,输入引脚则为低电平。通过反复读取按键输入引脚的信号,然后识别高低电平来判断是否有按键触发。

阅读全文 »

以前都是用正点原子的stm32 demo开发stm32,最近在学习物联网开发,发现stm32cubemx+hal库开发更快,stm32cubemx配置stm32外设驱动初始化,简直是神器,感觉现在的应用都是为了避免重复造轮子,大部分有库,直接调用就好,像ros,rtthread,谁的库越多,接口越多,谁就NB,我想以后会不会出一个库,直接打通整个世界,一库走天下,哈哈。现在记录下一些stm32cubemx+hal库的学习教程,备忘,也为了开发项目时速查。

阅读全文 »

C++提高编程

  • 本阶段主要针对C++==泛型编程==和==STL==技术做详细讲解,探讨C++更深层的使用
阅读全文 »