自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 初学正点原子Ministm32TFTLCD 显示实验

从上表可以看出,0XD3 指令后面跟了 4 个参数,最后 2 个参数,读出来是 0X93 和 0X41, 刚好是我们控制器 ILI9341 的数字部分,从而,通过该指令,即可判别所用的 LCD 驱动器是什 么型号,这样,我们的代码,就可以根据控制器的型号去执行对应驱动 IC 的初始化代码,从而 兼容不同驱动 IC 的屏,使得一个代码支持多款 LCD。而且我们在图形 叠加的时候,可以先读回原来的值,然后写入新的值,在完成叠加后,我们又恢复原来的值。这样在做一些简单菜单的时候,是很有用的。

2023-05-29 11:31:07 2195 3

原创 初学正点原子Ministm32 OLED显示实验

首先是 OLED_Init 函数,该函数的结构比较简单,开始是对 IO 口的初始化,这里我们用 了宏定义 OLED_MODE 来决定要设置的 IO 口,其他就是一些初始化序列了,我们按照厂家提 供的资料来做就可以。最后要说明一点的是,因为 OLED 是无背光的,在初始化之后,我们把 显存都清空了,所以我们在屏幕上是看不到任何内容的,跟没通电一个样,不要以为这就是初 始化失败,要写入数据模块才会显示的。这里的假读,其实就是第一个读到的字节丢弃不要,从第二个开始, 才是我们真正要读的数据。接口的时序来编写的。

2023-05-29 10:20:53 688 1

原创 初学正点原子Ministm32输入捕获实验

现在我们来介绍一下,捕获高电平脉宽的思路:首先,设置TIM2_CH1捕获上升沿,这在TIM2_Cap_Init函数执行的时候就设置好了,然后等待上升沿中捕获断到来,当捕获到上升沿中断,此时如果TIM2CH1_CAPTURE_STA的第6位为0,则表示还没有捕获到新的上升沿,就先把TIM2CH1_CAPTURE_STA、TIM2CH1_CAPTURE_VAL和TIM2->CNT等清零,然后再设置TIM2CH1_CAPTURE_STA的第6位为1,标记捕获到高电平,最后设置为下降沿捕获,等待下降沿到来。

2023-05-19 23:19:22 329 1

原创 初学正点原子Ministm32PWM输出实验

接下来,我们要设置 TIM1_CH1 为 PWM 模式(默认是冻结的),因为我们的 DS0 是低电 平亮,而我们希望当 CCR1 的值小的时候,DS0 就暗,CCR1 值大的时候,DS0 就亮,所以我 们要通过配置 TIM1_CCMR1 的相关位来控制 TIM1_CH1 的模式。在库函数中,PWM 通道设 置是通过函数 TIM_OC1Init()~TIM_OC4Init()来设置的,不同的通道的设置函数不一样,这里我 们使用的是通道 1,所以使用的函数是 TIM_OC1Init()。

2023-05-06 15:43:35 286

原创 初学正点原子Ministm32定时器中断实验

在前面时钟系统部分我们讲解过,系统 初始化的时候在默认的系统初始化函数 SystemInit 函数里面已经初始化 APB1 的时钟为 2 分频, 所以 APB1 的时钟为 36M,而从 STM32 的内部时钟树图得知:当 APB1 的时钟分频数为 1 的 时候,TIM2~7 的时钟为 APB1 的时钟,而如果 APB1 的时钟分频数不为 1,那么 TIM2~7 的时 钟频率将为 APB1 时钟的两倍。因此,TIM3 的时钟为 72M,再根据我们设计的 arr 和 psc 的值, 就可以计算中断时间了。

2023-05-06 15:25:51 262

原创 初学正点原子Ministm32看门狗实验

T[6:0]就是窗口看门狗的计数器,而W[6:0]则是窗口看门狗的上窗口,下窗口值是固定的(0X40)。因此,我们一般用该位来设置中断,当窗口看门狗的计数器值减到0X40的时候,如果该位设置,并开启了中断,则会产生中断,我们可以在中断里面向WWDG_CR重新写入计数器的值,来达到喂狗的目的。可以看出,这里我们的WWDG_CR只有低八位有效,T[6:0]用来存储看门狗的计数器值,随时更新的,每个窗口看门狗计数周期(4096×2^ WDGTB)减1。而WWDG使用的是PCLK1的时钟,需要先使能时钟。

2023-04-23 21:14:08 106

原创 初学正点原子Ministm32板独立看门狗实验

比如我们设定 prer 值为 4,rlr 值为 625,那么就可以得到 Tout=64×625/40=1000ms,这样,看门狗的溢出时间就是 1s,只要你在一秒钟之内,有一次写入 0XAAAA 到 IWDG_KR,就不会导致看门狗复位(当然写入多次也是可以的)。接下来,我们介绍预分频寄存器(IWDG_PR),该寄存器用来设置看门狗时钟的分频系数, 最低为 4,最高位 256,该寄存器是一个 32 位的寄存器,但是我们只用了最低 3 位,其他都是 保留位。通过这句,来启动 STM32 的看门狗。

2023-04-16 19:46:46 119

原创 初学正点原子Ministm32板串口实验

本章,我们将实现利用串口 1 不停的打印信息到电脑上,同时接收从串口发过来的数据,把发 送过来的数据直接送回给电脑。4.数据发送与接收。当向该寄存器写数据的时候,串口就会自动发送,当收 到收据的时候,也是存在该寄存器内。这个函数的第二个入口参数是标示使能串口的类型,也就是使能哪种中断,因为串口的中断类型有很多种。当我们使能了某个中断的时候,当该中断发生了,就会设置状态寄存器中的某个标志位。从上面的初始化格式可以看出初始化需要设置的参数为:波特率,字长,停止位,奇偶校验位, 硬件数据流控制,模式(收,发)。

2023-04-08 00:08:40 989 1

原创 初学正点原子Ministm32板按键输入实验

当mode为0的时候,KEY_Scan函数将不支持连续按,扫描某个按键,该按键按下之后必须要松开,才能第二次触发,否则不会再响应这个按键,这样的好处就是可以防止按一次多次触发,而坏处就是在需要长按的时候就不合适了。当mode为1的时候,KEY_Scan函数将支持连续按,如果某个按键一直按下,则会一直返回这个按键的键值,这样可以方便的实现长按检测。同时还有一点要注意的就是,该函数的按键扫描是有优先级的,最优先的是KEY0,第二优先的是KEY1,最后是WK_UP按键。这里我们采取的是库函数的读取IO口的值。

2023-03-27 23:41:31 425

原创 初学正点原子Ministm32板跑马灯

跑马灯代码

2023-03-22 23:11:41 275 2

空空如也

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

TA关注的人

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