STM32
fred_66
这个作者很懒,什么都没留下…
展开
-
使用STM32控制无源蜂鸣器发声播放音乐(STM32_07)
一、无源蜂鸣器和有源蜂鸣器有源蜂鸣器内含振荡源,只要一通电就发声,但发生频率固定,音色单一;无源蜂鸣器内部不含振荡源,内部结构相当于电磁场扬声器,可以通过给他输出一定频率的信号才能发声。人耳能听到的频率范围在20Hz--20kHz之间,通过STM32的GPIO引脚快速切换高低电平输出就能实现无源蜂鸣器的发声,切换的频率不同,发出的音调就不一样。二、音乐播放的实现一段音乐就是不同频率的声音按一定的时...原创 2018-05-10 11:10:12 · 46263 阅读 · 41 评论 -
STM32串口通信之Hello(STM32_11)
一、开发板硬件介绍1、MCU串口管脚 本程序使用STM32F103ZET6芯片,芯片有5个串口,其中有3个USART和两个UART,本程序使用异步方式,5个串口的管脚如下表所示。STM32F103ZET6芯片的5个串口外设管脚引脚 APB2总线 APB1总线 USART1 USART2 USART3 UART4 UART5 TX PA9 PA2 PB10 PC10 PC...原创 2018-05-30 14:07:32 · 5268 阅读 · 0 评论 -
在STM32项目中使用SysTick实现延时(STM32_06)
一、SysTickSys-系统,Tick-滴答声,系统滴答滴答很形象地表示了它是一个系统节拍器。SysTick 是一个集成在Cortex内核里的24位的倒计数定时器,当计到0时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息。SysTick的作用。SysTick主要有以下几个作用:1、产生操作系统的时钟节拍;当RTOS以并行的架...原创 2018-05-08 16:49:56 · 3621 阅读 · 0 评论 -
使用TIM1产生1秒定时控制数码管显示0-9(STM32_10)
一、项目配置1、新建项目文件夹"TimSeg";2、通过Keil5创建新项目,保存在所创建的文件夹中(设项目名为pTimSeg),选择MCU芯片为"STM32F103ZE"(本程序使用的硬件为:STM32-PZ6806L开发板)3、在"TimSeg"文件夹下新建"CMSIS"、"Device"、"Public"、"Startup"、"User"和&a原创 2018-05-14 14:10:43 · 11824 阅读 · 3 评论 -
通过位带地址操作GPIO在数码管显示数字(STM32_05)
一、什么是位带操作位带操作简单讲就是将一个对二进制位的操作映射到一个32位的地址上,通过给这个地址置0或1来给这个二进制位置0或1。二、CM3的位带操作在CM3支持的位段中,有两个区中实现了位段。其中一个是 SRAM 区的最低 1MB 范围,0x20000000‐0x200FFFFF(SRAM 区中的最低 1MB);第二个则是片内外设区的最低 1MB范围,0x40000000‐0x400FFFFF...原创 2018-05-07 16:32:08 · 4546 阅读 · 1 评论 -
使用STM32固件库函数操作控制LED灯(STM32_04)
直接使用寄存器地址来进行STM32开发要对每一个寄存器的地址通过查找芯片手册,对每一个寄存器的各个位的含义也要查清楚,然后决定对那个地址的哪些位进行怎样的设置。这种编程效率低,程序的可移植性差,程序的可读性差。 STM32提供了对外设寄存器操作的功能函数,对寄存器操作只需要调用相应的库函数就可以,一般函数名单词组合与功能密切相关,增强了程序的可读性。1、以CMSIS固件库项目为基础,...原创 2018-05-06 15:42:26 · 7728 阅读 · 2 评论 -
使用STM32固件库操作控制LED灯(CMSIS)(STM32_03)
直接使用寄存器地址来进行STM32开发要对每一个寄存器的地址通过查找芯片手册,对每一个寄存器的各个位的含义也要查清楚,然后决定对那个地址的哪些位进行怎样的设置。这种编程效率低,程序的可移植性差,程序的可读性差。一、CMSIS基于cortex系列的处理器内核都是一样的,区别在于除内核以外的外设的差异,由于这些差异,导致不同处理器移植起来比较麻烦,所以ARM与芯片厂商建立了CMSIS标准。AR...原创 2018-05-06 15:38:27 · 5311 阅读 · 1 评论 -
直接通过寄存器地址操作控制LED灯(定义常量标示对应寄存器)(STM32_02)
直接通过地址常量对应给寄存器赋值的方式是最简捷的方式,但程序的可读性极差(不容易地址常量值得知是对应哪个寄存器),程序的可移植性差,为了提高程序的可读性和可移植性,通常预定义符号常量和符号变量。void SystemInit() { } void delay(int t) { int i; for( ;t>0; t--) for(i...原创 2018-05-06 15:30:18 · 1514 阅读 · 0 评论 -
直接通过寄存器地址操作控制LED灯(STM32_01)
一、硬件基础1、开发版:STM32-PZ6806L2、MCU型号:STM32F103ZET6(1)内核:32位 高性能ARM Cortex-M3处理器。时钟:高达72M,实际还可以超频一点。单周期乘法和硬件除法。 (2)IO口:STM32F103ZET6: 144引脚 112个IO,大部分IO口都耐5V(模拟通道除外),支持调试:SWD和JTAG,SWD只要2根数据线 (3)存储器容量:5...原创 2018-05-06 15:27:34 · 6439 阅读 · 0 评论 -
STM32外部中断方式按键操作(STM32_09)
一、中断配置的步骤1、使能中断2、设置中断优先级分组void NVIC_PriorityGroupConfig(uint32_tNVIC_PriorityGroup);#define NVIC_PriorityGroup_0 ((uint32_t)0x700) /*0位抢占,4位响应 */ #define NVIC_PriorityGroup_1 ((uint32...原创 2018-05-12 12:04:06 · 11165 阅读 · 3 评论 -
使用STM32GPIO读取按键实现按键操作(STM32_08)
一、开发板按键设置 在"STM32-PZ6806L"开发板上除了复位按键外,还设计了4个按键,分别标为"UP"、"DOWN"、"LEFT"和"RIGHT",其电路如下:根据电路连接得知K_UP按键一端与GPIOA_0连接,另一端通过一个1KΩ电阻接3.3V,所以在对GPIOA_0配置时应设置工作方式为“下拉输入”,当按键松开时为低电平,按键按下时为高电平;K_LEFT、K_DOWN和K_RI...原创 2018-05-11 12:31:40 · 37804 阅读 · 6 评论 -
STM32串口通信之超级终端控制LED灯(STM32_12)
一、硬件介绍本程序使用开发板:STM32-PZ6806L1、GPIO控制LED开发板中LED的硬件电路参看:直接通过寄存器地址操作控制LED灯2、串口开发板中连接了MCU的2个串口,分别为USART1和USART3,其中USART1通过CH340G接PC端USB口,实现USB转串口功能,可以用于程序下载和串口通信,但通过PC端的超级终端连接时不能连接,所以本程序使用开发板上的另一个串口USART3...原创 2018-05-31 16:38:04 · 22633 阅读 · 1 评论