推荐阅读最新更新时间:2024-03-16 16:15
基于STM32和HAL库创建一个IIC设备
1 简述 使用面向对象的编程思想封装IIC驱动,将IIC的属性和操作封装成一个库,在需要创建一个IIC设备时只需要实例化一个IIC对象即可,本文是基于STM32和HAL库做进一步封装的。 底层驱动方法不重要,封装的思想很重要。在完成对IIC驱动的封装之后借助继承特性实现AT24C64存储器的驱动开发,仍使用面向对象的思想封装AT24C64驱动。 2 IIC驱动面向对象封装 iic.h头文件主要是类模板的定义,具体如下: //定义IIC类 typedef struct IIC_Type { //属性 GPIO_TypeDef *GPIOx_SCL; //GPIO_SCL所属的GPIO组(如:GPIOA)
[单片机]
关于STM32精准采频率的实现
这次做训练题遇到了采频率的问题,做单项并网问题,需要实时了解频率的相关信息。 尝试直接用他们提供的输入捕获,发现并不是很好用,琢磨了半天,实现了自己的部分采用。 这里就不一步一步的分析了,估计看的情况也比较少。 直接上手,不过,博主是从正点原子那里直接得到的库里面查找的信息。 一般定时器的配置 pwm_in_mode.h文件 这里介绍了两个配置函数 #ifndef __TIMER_H #define __TIMER_H #include stm32f4xx.h void TIM2_CH2_Cap_Init(void); void TIM2_IRQHandler(void); #endif 看自己
[单片机]
STM32—位带操作
STM32中的位带操作: 名字为位带操作,实际上是对位的操作,位操作就是可以单独的对一个比特位读和写,这个在 51 单片机中非常常见。 51 单片机中通过关键字 sbit 来实现位定义, STM32 没有这样的关键字,而是通过访问位带别名区来实现。STM32 的全部寄存器都可以通过访问位带别名区的方式来达到访问原始寄存器比特位的效果,这比 51 单片机强大很多。因为 51 单片机里面并不是所有的寄存器都是可以比特位操作,有些寄存器还是得字节操作,比如 SBUF。 51单片机中的位操作: 51单片机中可以对寄存器实现单个位的操作,靠的就是关键字sbit,如 sbit led=P1^0; led=1;就可实现对P1.0位置1的效果
[单片机]
意法半导体与 Sierra Wireless合作,简化物联网连接方案部署
整合STM32 MCU的低功耗、高性能和安全性与Sierra Wireless 的弹性的全球蜂窝物联网接入和边缘设备上云方案,简化物联网设备部署 中国,2021 年11月11日-- 服务多重电子应用领域的全球半导体领导者意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)和全球领先的物联网服务提供商Sierra Wireless宣布了一项合作协议,让STM32微控制器(MCU)开发社区能够利用Sierra Wireless灵活的蜂窝物联网接入和边缘设备云连接解决方案。 该协议可帮助解决方案开发者应对创建和部署物联网解决方案涉及的各种挑战,包括设备研发、蜂窝网络接入和与云服务连接等
[物联网]
基于STM32设计的掌上游戏机(运行NES游戏模拟器)详细开发过程
一、环境与硬件介绍 开发环境:keil5 代码风格: 寄存器风格,没有采用库函数,底层代码全部寄存器方式编写,运行效率高,注释清楚。 MCU型号: STM32F103ZET6 开发板: 正常的一块STM32开发板,带LCD插槽,带4颗独立按键。 游戏模拟器: NES游戏模拟器 LCD : ALIENTEK的3.5寸屏幕。(屏幕型号不重要,随便一款都可以的,把屏幕底层驱动代码写好,适配即可) 声音输出设备 : 采用VS1053 (SPI接口,操作方便) 游戏手柄: 支持FC游戏手柄 完成这个掌上游戏机需要使用的硬件设备不复杂,如果想要体验游戏,需要的必备硬件: 1. (必要)STM32F103系列
[单片机]
STM32的GPIO—快速IO的使用与讲解
STM32的每个GPIO端口都有两个特别的寄存器,GPIOx_BSRR和GPIOx_BRR寄存器,通过这两个寄存器可以直接对对应的GPIOx端口置'1'或置'0'。 GPIOx_BSRR的高16位中每一位对应端口x的每个位,对高16位中的某位置'1'则端口x的对应位被清'0';寄存器中的位置'0',则对它对应的位不起作用。 GPIOx_BSRR的低16位中每一位也对应端口x的每个位,对低16位中的某位置'1'则它对应的端口位被置'1';寄存器中的位置'0',则对它对应的端口不起作用。 简单地说
[单片机]
STM32_RTC闹钟
今天讲解“STM32F103 RTC闹钟”,说起“闹钟”大家肯定不会陌生,基本上我们每天都在接触。今天说的“RTC闹钟”就是我们现实生活中的闹钟,只是今天站在技术知识的角度来看待“闹钟”。由于这一阶段定位的是基础的知识,所以今天提供的软件例程也是相对简单一点的,但明白今天的知识,相信自己都会写闹钟程序了,后期我会更新日历及闹钟的综合知识。 今天提供并讲解的软件工程,基于前面的软件工程“TIM延时”修改而来。若有疑问,请关注微信公众号获取更多信息。 本着免费分享的原则,将讲解的工程源代码分享给大家,还望看到的朋友分享、关注和推广一下微信公众号,增加一下人气。 每天提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证
[单片机]
如何升级STM32单片机的代码
bootloader设置: static void check_boot_mode(void) { uint32_t JumpAddress; void(*Jump_To_Application)(void); if (((*((__IO uint32_t*)(APP_SEGA_START_ADDRESS+8))) & 0x2FFE0000 ) == 0x20000000) { JumpAddress = *(__IO uint32_t*) (APP_SEGA_START_ADDRESS + 12); Jump_To_Application = (void *)JumpAddress; __set_MSP(*((__IO ui
[单片机]