- 博客(20)
- 收藏
- 关注
原创 STM32移植U8g2实验
由于u8g2代码较多,内存较大,stm32c8t6不能存储这么大,而且很多代码都是用不上的,比如其它型号单片机的u8g2代码,因此得删除很多文件,按照上面转载的博客一步一步删除就行了。如果想做动画,可以借助取模软件将动画一帧一帧的取模,转换成01矩阵保存在代码的数组中,然后调用不同数组加上delay函数即可实现动画效果,大家可以去尽情探索。当所需文件都添加进左侧目录内,我们还需添加上刚才添加的文件的文件路径,以便keil编译器在编译代码能够识别添加文件的路径。所有代码都添加进去了,然后写一下代码看看效果。
2024-06-20 22:47:38
403
原创 STM32单片机移植uc/os系统,基于HAL库
此代码主要目的是实现串口发送和位于PC13端口的LED亮灭,通过uc/os系统可以达到一个多线程的效果,同时实现这两个功能,但是其实质还是单核。它是一个第3代的系统内核,支持现代的实时内核所期待的大部分功能,如资源管理、同步、任务间的通信等。本文基于HAL实现将uc/os系统移植到STM32上。1、打开CubeMX,找到STM32F103C8T6芯片,进行RCC、SYS的配置。3,调节时钟,主时钟设置为72M,并生成keil项目。5、打开生成的keil文件,引入ucos源文件。2、配置输出端口和串口。
2024-06-09 19:17:07
423
原创 STM32HAL库定时器中断以及呼吸灯实验
按照上面定时器的方式修改RCC和SYS,在TIM2修改Clock Source、Channel1,下方修改PSC和Counter Period,修改这两个值可以改变呼吸灯的频率,具体搜索PWM波原理,这里选择的是199和499,你可以尝试调低PSC为99会有不一样的效果,然后将auto-reload preload修改为Enable,在NVIC Setting勾上ENABLE。代码编写完毕,我们在对应引脚连上LED即可查看效果,在CubeMX右侧可以看到TIM2对应的引脚为PA15。
2024-06-02 16:58:09
727
原创 STM32新手入门篇之HAL库点灯
概要:STM32有多种开发方式,比如寄存器、固件库、LL库和HAL库,本文用到了HAL库来实现GPIO口的控制以及中断识别点灯,HAL库的特点是操作简单、能够快速上手;另外本文还利用keil5软件携带的示波器对输出引脚波形进行判断,观察stm32芯片在HAL库下运行情况。所需材料:STM32F103c8t6核心板、面包板(用来连接和固定芯片、LED灯)、STLink(用来将电脑上编写好的程序烧录进芯片)、杜邦线(连接STLink和开发板)。
2024-05-26 13:07:48
1095
原创 stm32标准库中断实验
题目:用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。如果完成后,尝试在main函数while循环中加入一个串口每隔1s 发送一次字符的代码片段,观察按键中断对串口发送是否会带来干扰或延迟。代码如下:main.cSerail.c实验现象:单片机不断向计算机发送a的符号,同时如果我们按下按钮led实现亮灭。
2024-05-19 17:16:53
289
1
原创 STM32标准库流水灯代码和串口通信入门
流水灯的实现分三两步初始化GPIO时钟,使用库函数将GPIOx的时钟调为ENABLE(允许)状态。初始化GPIO输出模式,有三个需要调节的,第一个是Mode(模式),输出模式分推挽输出、开漏输出、复用推挽输出、复用开漏输出,我们选用推挽输出即可;第三个是输出频率,有2M、10M和50M,这里选50M。编写代码控制端口输出,控制LED亮灭。具体原理可以看上篇寄存器控制LED,这里使用的是标准库,就是封装好的函数使用更方便。代码如下:LED.cLED.hmain.c。
2024-05-12 21:23:57
870
原创 小白使用STM32单片机以及使用寄存器点亮LED流水灯,教程实验讲解
简述:本文使用了STM32芯片在面包板上进行点灯实验,实验中我们采用了查芯片手册和使用寄存器的方法来实现我们的目的,通过寄存器实验,我们对单片机的了解会进一步加深.
2024-05-05 16:36:16
836
2
原创 51单片机学习单总线温度采集,原理+实例讲解
要想将温度转换为数据,必不可少的就是传感器了。是美国DALLAS公司推出的数字温度传感器,网上查阅资料发现DALLAS公司被Maxim Integrated公司收购了,所以也可以说是由Maxim Integrated公司生产。1.它采用单总线接口进行通信,可以直接与微处理器连接。2.通过单一引脚进行数据传输和供电。3.DS18B20具有高精度的温度测量能力,精度可达±0.5摄氏度。4.DS18B20还具有较宽的工作温度范围(-55摄氏度至+125摄氏度)、
2024-04-25 18:47:02
927
1
原创 51单片机定时器和串口通信的原理以及模拟仿真实验
上述TMOD格式已经了解清楚了,接下来我们将刻画TMOD的细节以便了解其具体功能(1)GATE——门控位在TMOD里面,高四位控制T1,低四位控制T0;其中GATE=0时,定时器是否计数,由控制位TRx(x = 0,1)来控制。其中GATE=1时,定时器是否计数,由外中断引脚INTx* 上的电平与运行控制位TRx共同控制。(2)C/T*位控制电子开关决定2种工作模式。C/T*=0,电子开关打在上面,T1(或T0)为定时器工作模式,系统时钟12分频后的脉冲作为计数信号。
2024-04-22 17:31:01
1270
原创 51单片机中断与定时计数
题目:设计一中断嵌套程序:要求K1和K2都未按下时,P1口8只LED呈流水灯显示,当按一下K1时,产生一个低优先级外中断0请求(跳沿触发),进入外中断0中断服务程序,上下4只LED交替闪烁。此时按一下K2时,产生一个高优先级的外中断1请求(跳沿触发),进入外中断1中断服务程序,使8只LED全部闪烁。当中断请求源发出中断请求时,如中断请求被允许,单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求,处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。
2024-04-07 20:20:14
996
原创 51单片机(多方法)点灯实验+汇编学习
汇编语言实现电灯思路为,灯亮=>延迟1s=>灯灭。我们实现汇编代码的方式为一步一步实现,首先实现灯亮,如果你看过我上篇博客(51单片机学习),那么你就应该知道地址90H连接着LED1,我们通过改变90H的存储值可实现LED1灯亮灯灭接着我们写一个LCALL+函数名,这是一条三字节指令,在51单片机中三字节指令比较少,111条指令中有17条是三字节指令,这条LCALL指令的作用是跳转到子程序,子程序运行完后再执行下一行的指令,相当于C语言中的调用函数,我们在这里使用LCALL指令调用延迟函数。
2024-03-24 22:09:02
703
1
原创 51单片机学习
此代码作用是将P1.0置0,90H是P1.0寄存器的地址,我们加上#表示立即数,不加#表示一个地址,#FE就是11111110这个数,寄存器取这个数最高位0,P1.0就成功置0了,另外这里有一个注意事项,频率应该调到10000或以上。我们点击魔法棒,选择output,勾上Creat HEX File,上面红框内的含义是选择hex文件存放地址,下面含义是在编译时将c语言转换为汇编语言的文件(hex)存储一份到指定文件夹。我们再次打开EdSim51,点击load,选择刚才生成的hex文件。
2024-03-16 19:57:46
294
1
原创 C51单片机仿真实验之使用Proteus点亮小灯
打开Proteus,在右上角文件新建工程选择下一步,修改文件名和路径方便自己查找一直选择下一步,默认情况下不创建pcb、不创建pcb布板设计、没有固件项目创建完成后点击左侧“P”键即可查找需要用的元器件打开固件库后我们在关键字栏搜索AT89C51再点右下角确定就可以使用51单片机了双击51芯片会出现下面窗口.hex 文件可在keil软件中生成,接下来就是如何点亮LED灯。
2024-03-10 17:17:23
402
2
原创 3-8译码器和1位全加器的verilog实现
3—8译码器的真值表如下其电路图如下我们打开quartus,新建一个verilog文件,写出下列代码选择生成RTL电路。
2023-12-17 21:55:37
436
1
原创 Windows下安装Ubantu系统
在计算机中,linux系统是 一个免费的操作系统,因为免费,所以热爱。Ubantu是linux的一个发行版本,本文就如何安装Ubantu展开。linux安装安装完毕,还需不断熟悉linux操作系统。
2023-10-21 19:03:20
179
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人