自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 问答 (1)
  • 收藏
  • 关注

原创 STM32HAL库编程——按键控制LED灯实验

按下的前10ms和松开后的10ms内会产生机械抖动,为了消除抖动,那就让编译器避开抖动阶段。就是跳过前10ms和跳过后10ms,这样就可以避免按键状态的读取错误。因为采用的是上拉输入,就是说,如果按键没有按下的话,那就一直是高电平,如果按键按下,那就是低电平。同时添加延时读取函数,如果一直处在按下状态的话,就一直进入While循环。初始化LED灯引脚PA0,高电平,推挽输出,无上拉下拉。初始化按键引脚PA1,上拉输入。1.首先定义LED电平状态切换函数。2.再定义读取按键引脚电平状态函数。

2024-01-27 15:12:19 571

原创 STM32HAL库编程——点亮一颗LED

今天也是换一个标题吧,把“自学STM32历程”改成“STM32HAL库编程”,因为我现阶段是以HAL库学习为主。今天也是发布第一个HAL库项目——点亮一颗LED,这也是所有嵌入式学习的开始吧!因为HAL库编程和固件库编程的区别不大,只是HAL库编程能帮助我们初始化,而固件库要我们自己初始化而已,但它们的编译原理是一样的,都是间接控制寄存器,而且都可以控制同一个芯片,只是编译方式不同而已。

2024-01-27 09:02:26 448

原创 自学STM32历程——进军HAL库编程!

最近也是跟着B站江科大老师学完了STM32库函数编程,当然,还没有学完,因为我目前学习32的主要目的是为了备考蓝桥杯,所以我只学到USART串口发送就没继续学了。至于为什么还要学Hal库编程,哈哈哈,就是因为蓝桥杯的嵌入式考试是用Hal库编程的。链接:https://pan.baidu.com/s/1ou0-ycucZXx9tky3jAA3vQ?但但是,我学Hal库也只是为了对付蓝桥杯,蓝桥杯考完后,我就又要开始学习库函数了,因为库函数更偏向于工作。所以这篇文章将是我HAL库学习的第一篇总结!

2024-01-25 09:41:22 387

原创 STM32自学历程——USART传输(串口接收)

对比之前的串口发送,串口接收只用在发送的基础之上添几行代码就可以了。串口接收相当于是接收发送方传回的波形,进行读取后转换成十六进制,然后对比ASCII码确定值。

2024-01-21 12:15:25 372 1

原创 STM32自学历程——USART传输(解决传汉字乱码问题)

GBK2312:如果直接使用GBK2312的话就简单了,什么都不用加,而且串口也能够正常打印。打开魔术棒——C/C++——在下图所示地方输入:--no-multibyte-chars。有些时候利用串口发送汉字时,电脑端会出现乱码,这是因为汉字库没选好。

2024-01-21 12:07:25 657 1

原创 STM32自学历程——USART传输(重定向printf)

重定向函数也是Printf函数的底层函数,Printf函数实现打印的原理就是通过fput函数一位一位的打印,只不过未重定向之前,fput函数是将值打印到屏幕上,重定向就是让fput函数一位一位的把数据打印到串口而已。如果直接想用Printf函数打印东西到电脑串口上,那就要对Printf进行重定向,因为Printf函数是默认打印东西到屏幕上,但是单片机没有屏幕,所以就要对Printf进行重定向。致,就是多了一位数组位。Printf函数是将数据打印到屏幕上,而Sprintf函数是将函数打印到定义的数组里面。

2024-01-21 12:05:22 1025 1

原创 STM32自学历程——USART传输(串口发送实验)

成功在电脑串口助手上显示中文“你好,世界”

2024-01-21 11:48:20 908 1

原创 STM32自学历程——USART传输(基础知识)

其实这不仅是USART协议的原理,更是通信原理的本质,通信双方为了实现聊天,但计算机又只能实现01传递,所以通信双方肯定有所约定,肯定都有一张表,表上写0000为0,那么想要传输0,那直接传输0000对方就知道我要传输0了。USART传输一个字节是通过帧的方式来传输的,因为一个字节有8位,所以数据位就有8位,再加上起始位和停止位共有10位。通信双方约定的发送方式,比如在考试过程中,想给别人传答案,咳嗽一声表示准备开始,竖一根手指头表示选A,竖两根手指头表示选B,竖三根手指头表示选C,最后挥挥手表示结束。

2024-01-21 09:35:49 800 1

原创 STM32自学历程——PWM呼吸灯的实现(下)

成功实现LED灯的呼吸效果,先由暗到亮,再由亮到暗,以此循环往复。

2024-01-16 17:18:50 1016 1

原创 STM32自学历程——PWM呼吸灯的实现(上)

Pwm是什么:Pulse Width Modulation脉冲宽度调制使用思想:利用人眼的余晖效应,来控制呼吸灯或电机。在数字输入系统中等效模拟量。占空比:在一个电平周期内,高电平与整个电平周期的比值。比值越大,则代表高电平持续时间越长。CNT是计数器计数值,而CCR是我们自己定的值,REF是输出信号的参考值。

2024-01-16 16:29:06 386 1

原创 FPGA项目集合汇总

练习1是实现1-0转换状态机器,练习2是实现输入输出计数器的实现,练习3是与门的实现。练习4是当时钟每经历10次高电平,则翻转电平。

2024-01-10 23:01:49 326 1

原创 小插曲3——Modesim仿真常见问题

因为本学期的FPGA期末考试要使用机考,且需要使用Modesim进行波形仿真,所以最近也是在练习使用Modesim。不过在使用Modesim时我也遇到了不少的问题,所以想要发布一个总结帖子,希望能帮助到大家,而且也为自己以后的复习准备好资源。

2024-01-09 14:30:45 435

原创 STM32自学历程——用外部时钟计数(红外传感器为触发)

先做一个区分,外部时钟和内部时钟是怎么计数的?内部时钟:通过内部晶振来实现计数,每到一个上升沿就计数一次;外部时钟:通过外部触发的方式来触发定时中断,比如利用红外传感器,只要用手挡一次,就变化电平,计数器就加1。

2024-01-06 23:04:40 554 1

原创 STM32自学历程——TIM定时器中断计数实验

在STM32中,开启外设的时钟和配置外设的时钟源是两个独立但相关的步骤。然后,我们需要通过TIM_InternalClockConfig来配置TIM2的时钟源,这个时钟用来给预分频器信号,这两个时钟是不同的作用。总之,只要是想配置一个外设,就需要配置对应的外部时钟,因为只有配置了该时钟,微控制器才知道你要使用这个外设,而TIM、PWM属于高级应用,需要开启额外的时钟。把代码烧录进入开发板后,OLED显示屏显示的计数不是从0开始的,而是从1开始的,这是怎么回事呢?该函数用于读取该TIMx所设置的预分频数。

2024-01-06 22:39:05 374 1

原创 STM32自学历程——TIM定时器中断

将72Mhz的主频进行分频,因为72Mhz意味着1秒通过72000000个波形,即有72000000个上升沿通过,而计数器的最大计数值为65535,每一个上升沿记一次数,最大计数65535,若寄存器没有设置值,则默认计数到65535计数清零。所以为了让计数值变慢,就要对主频进行分频,预分频器的分频原则如下:0不分频1分成两个频为:36MHZ2分成三个频为:12MHZ。

2024-01-06 22:02:11 457 1

原创 插曲2——如何在Quartus II里面进行模块例化(以基于EP2C5T144C8的人体红外检测装置项目为例)

我只能说,还好我学过32,这和32里面的子函数调用很像很像,不过还是有区别的。模块例化就是就是将实现各个功能的函数逐个放在单独的文件里面,需要的时候就调用,不需要时就不调用。就相当于是32的库函数。在32里面无论是调用什么函数,都是要在主函数里面调用的,而FPGA要调用各个封装函数,就需要利用顶层文件来将各个封装函数联系起来。我觉得顶层文件就像是一个总的接线器,是开发板和功能代码的一个联系中介,比如,一个实现ad采集的封装函数需要用到开发板的ad引脚,在封装函数中,将ad引脚直接。

2024-01-01 23:31:59 1536

原创 小插曲——浅谈FPGA的学习心得

因为我现在的情况是:大三上学期临近期末,而且我这个学期有FPGA的课程,虽然学校教的东西很浅薄,感觉就像是告诉我有FPGA这个东西就没了(哈哈哈,其实是因为我没听懂)。我们学校期末安排的实训内容也是基于FPGA的,我也是捣鼓了好几天才弄出来,本着”没有复盘的学习=白学“思想,我还是要为本学期FPGA的学习写一篇心得。

2024-01-01 21:53:52 398

原创 STM32的自学历程——实现红外中断

简单来说,就是当主程序运行时,突然发生一件事情,导致主程序的运行被打断,此时32要先停止主程序的运行,转头处理意外事件,待事件处理完毕后,再继续主函数的运行。上图是中断的概念图,我也是跟着江科大学32的,所以用的也是老师PPT里面的图。

2023-12-22 21:59:19 402

原创 STM32的自学历程——前章

本人目前大三,通信工程,大二下学期学校教了一门课叫做——《嵌入式微控制器》,这本书就是教我们如何使用STM32,包括GPIO、EXTI、ADC……等等,但是过于理论化了,导致我期末了还是一脸懵逼,连点亮一颗LED灯都不会。后来经历了许许多多的事情,由贵人推荐,说学会STM32对找工作很有帮助,从今年12月起,我也自此开始了我的自学STM32之旅。

2023-12-22 21:21:12 322

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除