自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 【无标题】

【代码】【无标题】

2024-05-28 12:30:49 96 1

原创 STM32G431RBT6 I2C eeprom的写入和读出,MCP4017的写入

在给ROM写入数据后,ROM会给单片应答。在写入ROM的过程中需要先找到外设的地址,再找到我们需要存储的ROM的地址,最后存入ROM中。上图是它的写入时序图,最开始我们需要给他一个start的信号,START信号是在scl为高电平时,sda线由高电平到低电平的上升沿。读ROM程序的操作中,需要先写入地址和ROM地址,指定要读取的位置,最后再取出,与写入rom不同,读出数据的外设地址最后一位需要为1,所以为0xa1。其中在sda传输数据的时候,只有在scl为高电平时,sda的数据被传输。

2024-03-04 13:39:25 391 1

原创 蓝桥杯嵌入式ADC检测篇章

DMA中断结束的标志是在HAL_ADC_Start_DMA(&hadc1,(uint32_t*)adc11_value,10);10个数据发送完毕的时候,进入DMA中断,也就是进入ADC中断回调函数。轮询方法的关键点在于要在while循环中进行ADC转换,由于是软件触发,可以在我们需要的时候,开启ADC转换,避免了在不需要知道电压的情况下,ADC不停地转换。我们在本次ADC检测篇,使用的是DMA传输方式,DMA的使用可以减少CPU将外设数据搬运到RAM中,可以减少CPU资源的使用。

2024-03-03 22:46:11 255

原创 STM32G431RBT6串口收发不定长数据(空闲中断)

_HAL_DMA_GET_COUNTER(&hdma_usart1_rx)这个函数的作用是获取当前接收数据的计数值,他在中断函数中实现过程是当我们开启DMA传输时,计数值会被置为我们给定的最大接收数据量,完成回调函数被触发也是因为计数值为0。__HAL_UART_GET_FLAG(&huart1,UART_FLAG_IDLE)函数可以获得到关于串口的标志位信息,这里我们获取到了UART_FLAG_IDLE的状态,即为空闲中断的标志位,如果他为SET,则代表空闲中断被触发,进入到我们的回调函数。

2024-02-27 11:32:51 435

原创 STM32G431RBT6按键判断(定时器实现)(单击,长按和双击)

每10ms执行一次。将定时器设置为10ms的中断,每进入一次循环,都会将四个按键的状态获取一遍,进入for循环,将四个按键的所有状态遍历,当key[1].key_sta=0时,意味着按键被按下,但此时我们并不确定是不是,抖动所致,所以设置了key[1].judge_sta变量,用于判断按键是否在下一个10ms中,是否还为0,如果是,那么key[1].single_sta置1,此次按键被响应。在使用中,通常会出现,多个不同的响应,而我们的按键数量有限,如果只用单次响应,无法实现一个按键控制多个任务。

2024-02-25 22:17:11 605

原创 STM32G431RBT6点灯第一课

SysTick时钟采用的是内部定时器,在生成的工程中,自动实现1ms的中断,每次中断实现uwTick++,我们可以根据这个值,来实现我们的延时函数,避免使用HAL_DELAY()堵塞程序,下面这个main函数里面的逻辑,完全可以用下面这个函数代替。在蓝桥杯开发板中,控制led灯的引脚为(pc8~pc15)。控制LED的亮灭,应该在它的位寄存器上控制,但stm32GPIO口太过于繁多,用HAL库函数,便可以实现亮灯的控制,根据原理图,当IO口输出为高电平时,LED灯灭,反之,亮。

2024-02-23 20:07:43 335

原创 四种排序(直接插入排序,直接插入排序(改进版),选择排序,冒泡排序)

四种排序法的稳定输出

2023-05-23 17:46:56 49

空空如也

空空如也

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

TA关注的人

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