自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32-软件模拟和硬件实现I²C

若SDA此时为低电平,SCL先拉高,再拉高SDA,这样就先发送了一个结束信号,虽然对结果没什么影响,但会让程序时序混乱。之后就可以接收数据,此时会触发EV7事件,当接收到数据时,RxNE会被置1,这时将DR寄存器的内容读取即可清除该事件【清除RxNE】,同时应该响应ACK,将ACK位设置为1。首先需要先发送一个起始信号,会触发EV5事件,当起始信号发送成功后,SB位被置1,此时读SR1,然后再将地址写入DR寄存器即可清除该事件【清除SB】。当SCL为低电平时,SDA可以任意变化,以此来改变自身的电平。

2024-07-19 23:39:50 2027

原创 STM32—寄存器开发原理

通过芯片手册可以知道,GPIO端口A的地址刚好是0x40010800,恰好指针GPIOA是一个GPIO_TypeDef结构体指针,所以指针GPIOA就表示GPIO端口A。代码中使用GPIOA直接表示GPIOA寄存器对应的指针,GPIOA->CRL表示GPIOA对应偏移的GPIOA_CRL寄存器,那么为什么可也这样表示呢?头文件可以发现,GPIOA其实是一个 GPIO_TypeDef结构体指针,其地址值是GPIOA寄存器的基地址,是一个宏定义 GPIOA_BASE。就表示GPIOA_CRL寄存器了。

2024-07-11 17:19:41 674

原创 C语言_多文件共用同一变量

解决此问题的方法在于存储类别说明符extern关键字,extern说明符表明声明的变量定义在别处。

2024-01-14 04:30:59 770 1

空空如也

空空如也

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

TA关注的人

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