推荐阅读最新更新时间:2024-11-13 03:21
在linux环境下如何进行stm32的开发建议
工具链一般用gcc-arm-none-eabi,可以用包管理装,也可以到arm官网下,也可以自己编译,毕竟gnu源有这个配置。 纯用命令行的话,cubemx可以生成makefile工程,改下编译器路径就能make,会生成bin文件。 用IDE的话,可以用eclipse,参考wiced sdk。 可以用vscode,体验要优于sublime。网上搜搜怎么配环境,主要就是设置工具链的目录。 烧录程序,如果烧的是bin的话需要一个烧录程序。用jlink的话可以用segger官网下的jlinkexe工具。用stlink的话可以用github上的stutils什么的。用cmsis-dap或者ft2232的话就只能配openo
[单片机]
STM32之通用定时器编码器模式
1、编码器原理 如果两个信号相位差为90度,则这两个信号称为正交。由于两个信号相差90度,因此可以根据两个信号哪个先哪个后来判断方向、根据每个信号脉冲数量的多少及整个编码轮的周长就可以算出当前行走的距离、如果再加上定时器的话还可以计算出速度。 2、为什么要用编码器 从上图可以看出,由于TI,T2一前一后有个90度的相位差,所以当出现这个相位差时就表示轮子旋转了一个角度。但有人会问了:既然都是脉冲,为什么不用普通IO中断?实际上如果是轮子一直正常旋转当然没有问题。仔细观察上图,如果出现了毛刺呢?这就是需要我们在软件中编写算法进行改正。于是,我们就会想到如果有个硬件能够处理这种情况那不是挺好吗? 3、stm32编码器
[单片机]
STM32中关于高电平有效,低电平有效的一点理解
在学习STM32中的过程中,经常会遇到“高电平有效”,“低电平有效”等字眼,初看时很多时候就会从字面上理解,认为高电平有效的意思就是有效电平是高电平,低电平有效的意思就是有效电平是低电平的意思。而实际上,这样的理解是有误的。下面咱们以STM32的定时器中输出比较通道为例: 这幅图实际上就是一个pwm波产生的过程,对定时器不了解的可以去查阅相关手册,现在我们先看图中标号1的输出模式控制器,这里模式是指pwm模式,他的意思就是可以通过配置寄存器TIMx_CCMR1的OC1M两位,来选择pwm的模式,但是关于模式选择,手册中有这样一句话:在向下计数时,一旦TIMx_CNT TIMx_CCR1时通道1为无效电平(OC1REF=0),否
[单片机]
初学stm32-Systick滴答时钟定时
滴答定时器概述 Systick定时器,是一个简单的定时器,对于CM3,CM4内核芯片,都有Systick定时器。常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。比如uCOS中,分时复用,需要一个最小的时间戳,一般在STM32+UCOS系统中,都采用Systick做uCOS心跳时钟。 Systick定时器就是系统滴答定时器,一个24 位的倒计数定时器,计到0 时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息,即使在睡眠模式下也能工作。 SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。
[单片机]
增强型单片机STC12C5A60S2输出各种频率方波信号
设时钟频率Fosc=18.432MHz,设计程序,从P1.0/CLKOUT2引脚输出频率为124.540KHz的时钟;从T0(P3.4)引脚输出频率为125KHz的时钟;从T1(P3.5)引脚输出频率为38.4KHz的时钟。 解:使用STC12C5A60S2的可编程时钟输出功能完成所需要求。在下面的程序设计中(在此只给出C语言程序),T0、T1和独立波特率发生器BRT均工作在1T模式。 程序编制如下: #include stc12c5a.h //包含STC12C5A60S2的寄存器定义头文件 void main(void) { TMOD = 0x22; //T0和T1工作在方式2,8位自动重装计数
[单片机]
stm32中的寄存器地址映射
外设基地址——》3大外设总线基地址(APB1、APB2、AHB)——》对应的外设基地址——》结构体与寄存器对应映射
[单片机]
STM32的USART发送数据时如何使用TXE和TC标志呢?
USART 是 STM32 中非常重要的外设之一,用于串行通信,其中包括串口通信(RS232、RS485)、SPI 和 I2C 等多种串行通信协议。USART 在 STM32 中有多个实例,包括 USART1、USART2 等,其特性和功能也不完全相同。 在发送数据时,USART 需要使用 TXE 和 TC 标志位。TXE 表示数据寄存器空,表示 USART 数据发送寄存器中的数据已被全部发送出去,可以直接写入新的数据。TC 标志表示传输完成,表示 USART 发送完全部数据,且寄存器都为空。 下面我们来看一下 STM32 的 USART 发送数据时如何使用 TXE 和 TC 标志位。 1.USART 数据寄存器有两种模式:8 位
[单片机]
AVR 定时器快速PWM模式使用
PWM很常用,AVR自带内部PWM功能,分为快速PWM模式和相位修正PWM模式。 我们这里选择方式15 ,由OCR1A保存上限值,由OCR1B保存匹配值,所以输出管脚 OCR1A不能输PWM,只能有OCR1B输出PWM信号。 如果用方式 5,6,7模式 上限值是固定的,所以我们就可以用OCR1A和OCR1B保存匹配值 OCR1A和OCR1B都可以输出PWM信号。 快速PWM时序图 根据此公式计算出OCR1A和OCR1B的数值 OCR1A: 1,11059200 / 100 /64 = 1728
[单片机]