- 博客(8)
- 收藏
- 关注
原创 STM32:USART串口收发数据
USART功能单元,能够实现同步串行通信(USART)和异步串行通信(UART)。同步串行通信在异步串行通信的基础上增加了同步时钟信号USART_CK,用来同步触发收发双方数据的传输。USART可以不使用同步时钟信号,便作为异步通信使用,此时与UART无差别。当数据从 TDR 转移到移位寄存器时,会产生 TDR 已空事件TXE,使状态寄存器(SR)中的TXE 置位,以表示数据已经转移到发送移位寄存器。
2024-06-14 21:47:46
1253
原创 STM32: DMA数据传输学习
DMA(Direct Memory Access)直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。相当于CPU的数据传输小助手。
2024-06-05 20:59:10
767
原创 STM32:第一次写底层代码心得体会
在最开始的时候,是很迷茫的,不知道从何下手,寄存器的地址怎么找?外设挂在那条总线上?其次,能看到表格右侧有AHB,APB1,APB2,对应就能得到对应时钟总线的起始地址。我们需要知道我们所想要驱动的外设挂载在一条总线上,然后找到总线的地址,在顺藤摸瓜一步步写出所需外设地址。当然想要调用这些寄存器同样需要这些寄存器的地址,通过指向这些地址,实现赋值操作才能完成对应功能。以CRH寄存器为例,想要得到他的地址,只需要用GPIOA的基地址+该寄存器的偏移地址。如下我便定义了基地址和总线基地址,以及外设基地址。
2024-06-03 22:59:34
380
原创 STM32---ADC数模转换基础知识
12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。外部模拟电压信号输入范围为Vref-<=Vin<=Vref+ADC作为片上外设,若需要对芯片外部模拟信号进行采样,则外部模拟电压信号输入到ADC的模拟输入通道才行,由于STM32单片机上外设均为设置专用功能引脚进行信息的输出输入,因此需要采用引脚复用的方式实现片上外设功能引脚。
2024-05-31 20:16:23
1137
原创 STM32:内部中断---通用定时器定时中断
通用定时器TIMx是带预分频器的十六位定时器,内部预分频器(PSC),计数器(CNT),自动重装载寄存器(ARR)均是十六位的,CNT定时计数方式可以是向上,向下,双向计数。由时钟源选择,时基单元,输入捕获,比较输出四大功能单元构成通用寄存器:TIM2,TIM3,TIM4,TIM5高级定时器:TIM1,TIM8基本定时器:TIM6,TIM7。
2024-05-25 16:35:08
972
原创 有关嵌入式的C语言知识
使用宏定义可以提高源代码的可读性,为编程提供方便。关键字是 define#define 宏名 字符串#:表示这是一条预处理命令,所有以#开头的都是预处理命令宏名:是标识符的一种,命名规则与变量相同字符串:可以是常数数字,格式串,表达式,if语句,函数等宏名可以带参数,此时就是带参数的宏定义,宏名中不能有空格,宏名与形参表之间也不能有空格,而形参表之间可以有空格。
2024-05-22 21:31:18
440
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人