推荐阅读最新更新时间:2024-11-06 01:10
让MDK支持printf(基于stm32)
1、在Option- Target选项框里选Use MicroLib 选项 2、在将要调用printf的函数的c文件中包含头文件 #include stdio.h 3、在该c文件中添加如下函数: int fputc(int ch, FILE *f) { //USART_SendData(USART1, (u8) ch); USART1- DR = (u8) ch; /* Loop until the end of transmission */ while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET) { } return ch; }
[单片机]
STM32 RTC闹钟中断和唤醒待机模式
RTC代表的是实时时钟的意思。因为它提供的时钟基准比较准确所以用处还是很多的。本文章主要讲解基于STM32F103上的RTC闹钟中断功能以及用闹钟中断唤醒STM32的待机模式。 需要注意RTC的几个要点:1.RTC的值被设定后它就会一直按照设定的基准时间自己递增,如果你的硬件设备上发现一个纽扣电池,那就是给RTC功能供电用的。因此就算关闭掉设备的主电源,RTC的运行也是不受影响的,当然如果扣掉纽扣电池或者不带纽扣电池它就不工作了。2.每次STM32复位后这个RTC值它重新计数还是继续计数要考虑清楚3.RTC的值是有上限的,它的最大值就是2的32次方减一,这个数字很大因此不用太关心。 本文章的第一个例程是让RTC一次设定值后
[单片机]
STM32驱动DS18B20
DS18B20 是由 DALLAS 半导体公司推出的一种的“一线总线”接口的温度传感器。与传 统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口简单的 数字化温度传感器。一线总线结构具有简洁且经济的特点,可使用户轻松地组建传感器网络, 从而为测量系统的构建引入全新概念,测量温度范围为-55~+125℃ ,精度为±0.5℃。现场温 度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。它能直接读出被测温度, 并且可根据实际要求通过简单的编程实现 9~l2 位的数字值读数方式。它工作在 3—5. 5 V 的电 压范围,采用多种封装形式,从而使系统设计灵活、方便,设定分辨率及用户设定的报警温度 存储在
[单片机]
STM32的看门狗配置
看门狗的配置有2部分:看门狗的初始化和喂狗。 下面看一下STM32是怎么初始化看门狗和喂狗的。 看门狗初始化步骤: 1.IWDG_PR和IWDG_RLR寄存器具有写保护功能。要修改这两个寄存器的值,必须先向 IWDG_KR寄存器中写入0x5555。 2.设置预分频因子 (Prescaler divider)PR 。 3.设置看门狗计数器重装载值。RLR 。 4.重新装载看门狗的计数值,只要在键寄存器IWDG_KR中写入0xAAAA。 5.在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗。 void Wdt_Init(void) { // Enable write access to IWD
[单片机]
stm32专题十七:AT24C02
AT24C02的数据手册 1 硬件连接:直接是连接到I2C1的SCL SDA引脚(PB6 PB7)上,因此可以使用硬件I2C 2 存储容量描述 可以看到,AT24C02共有256个字节。跟Flash类似,EEPROM也分成不同的页。AT24C02共有32页,每页8个字节,共256字节。 支持400kHz的通讯速率(IIC快速模式) 3 引脚说明 4 设备描述 5 地址选择 6 写数据 字节写入 字节写入操作,需要8位的数据字地址跟随在设备字地址和应答位之后。当EEPROM接收到这个地址后,会再次响应0(初次响应为设备地址)。然后计时第一个8位数据。在收到8位数据后,EEPROM会输出
[单片机]
STM32实战二 新建工程
这一章新建一个工程,主要目的是练习新建C++工程,生成比较干净的代码,后来发现没在太大的意义,直接在原示例中删除文件,然后新建cpp文件即可,也可以把原有main.c的属性变成c++,方法是main.c/右键/Options for file 'main.c' /Properties标签/File Type:/改为C++ Source file,这样更方便。不过下面还是记录一下新建工程的过程,对熟悉环境和配制有一定的帮助。 复制原有流水灯程序到新的文件夹下,打开Keil4,点击新建工程 在对话框中找到下面的文件夹,并新建一个文件夹STM32-AGV,进入STM32-AGV文件夹。 键入工程名ST
[单片机]
玩转stm32 usart 串口功能 库函数 详解和DMA
数据传输时要从支持那些相关的标准?传输的速度?什么时候开始?什么时候结束?传输的内容?怎样防止通信出错?数据量大的时候怎么弄?硬件怎么连接出发,当然对于stm32还要熟悉库函数的功能 具起来rs232和485电平的区别硬件外围芯片,波特率(反映传一位的时间),起始位和停止位,数据宽度,校验,硬件流控制,相应连接电脑时的接口怎么样的。配置,使用函数,中断,查询并结合通信协议才算了解了串口使用。 以上是基础,当然stm很多相关复用功能,支持同步单向通信和半双工单线通信,支持局部互联网、智能卡协议和红外数据组织相关规范,以及调制解调器操作,运行多处理器通信。同时可以使用DMA方式进行高速数据通信。注意Print函数时间问题,尝试通过D
[单片机]
STM32学习日志——IIC控制OLED
今天学习的是OLED显示实验,OLED,即有机发光二极管,自发光,不需要背光源,被认为是下一代的平面显示器新兴应用技术。 它有两个引脚,是用来控制通信方式:BS1和BS2。因为我学的是正点原子的开发板,他的OLED配件需要40元(有四种接口方式),而淘宝的IIC接口OLED的只需要9.9,于是我就买了便宜的,这就意味着要自己研究资料和敲代码。该OLED的控制芯片是SSD1306,IIC接口的只需要4根线:VCC,GND,SDA,SCL,非常节约资源。IIC通信上一次已经讲过,这次就不重复了。 这里先讲一下SSD1306写模式,1)首先是开始状态;2)发送从机地址:0x78|(W/R),写为0,读为1;3)等待回应;4)发送控制
[单片机]