推荐阅读最新更新时间:2024-11-13 00:48
STM32启动文件初探之startup_stm32f10x_hd.s(Reset_Handler函数)
该文件主要实现目的: 设置初始SP 设置初始PC=Reset_Handler 设置向量表入口地址,并初始化向量表 调用SystemInit,把系统时钟配制成72M,SystemInit在库文件system_stm32f10.c定义 调转到标号_main,最终来到C程序文件 ; Reset handler Reset_Handler PROC EXPORT Reset_Handler IMPORT __main IMPORT SystemInit LDR R0, =SystemInit BLX R0
[单片机]
STM32单片机/I2C通信(上篇)
本文使用STM32FI03RCT6型号的单片机, 基于正点原子的函数库进行总结讲解 复制 想来单片机这块儿除了USART串口通信外,常见的便是I2C通信了,因为I2C通信 硬件连接简单,可扩展性强,但是这种硬件连线的简洁,是以协议的复杂来弥补的。I2C通信是一种半双工通信,也就是可以双向传输数据但不能同时进行。 STM32单片机是可以进行硬件I2C通信或者软件模拟进行I2C通信的,硬件I2C通信只需要对I2C引脚以及通信模式这两个结构体进行初始化即可,但I2C硬件通信由于硬件原因并不稳定(原子哥说的),不过在STM32F4系列有所改善,但我都没试过(寒假在家手头硬件条件不足)。 下面我们基于软件I2C模拟进行说明。 I2C通信
[单片机]
STM32开发笔记69: 外设启动的先后次序
单片机型号:STM32F070F6P6 今天,在程序框架中增加了Timer16定时器驱动,但程序不能正常运行,本篇日志记录其原因。 驱动程序框架,定义了回调函数Timer16_InterruptFunction,写在main.cpp中用于逻辑层设计。Timer16_InterruptFunction调用的间隔为1ms,具体程序如下: void Timer16_InterruptFunction(void) { Target.HAL.L2.Turn(); } 此程序完成以1ms为间隔L2闪烁的程序,但是将此程序烧写到目标板后,程序不能正常运行。经过调试,最后将问题锁定在启动顺序上,看一下程序外设的启动顺序,具体程序
[单片机]
stm32专题三十六:MDK编译过程和文件类型(二)
MDK工程的文件类型: 1 下图为 Project 目录下的工程文件 实际上,只需要有 unprojx 文件,就可以恢复整个工程。 具体描述: 2 源文件 3 output 和 list 文件 详细分析: 1 uvprojx 文件 uvprojx 文件就是我们平时双击打开的工程文件,它记录了整个工程的结构,如芯片类型、工程包含了哪些源文件等内容。 可以使用vscode直接打开 uvprojx ,来看一下里面的具体内容: 2 uvoptx 文件 uvoptx 文件记录了工程的配置选项,如下载器的类型、变量跟踪配置、断点位置以及当前已打开的文件等。 我们在程序 main.c 的第81行
[单片机]
STM32启动文件初探之startup_stm32f10x_hd.s(Reset_Handler函数)
该文件主要实现目的: 设置初始SP 设置初始PC=Reset_Handler 设置向量表入口地址,并初始化向量表 调用SystemInit,把系统时钟配制成72M,SystemInit在库文件system_stm32f10.c定义 调转到标号_main,最终来到C程序文件 ; Reset handler Reset_Handler PROC EXPORT Reset_Handler IMPORT __main IMPORT SystemInit LDR R0, =SystemInit BLX R0
[嵌入式]
stm32硬件i2c stm32硬件iic缺陷如何解决
STM32单片机具有IIC接口,IIC接口具有多主机功能、主设备功能、C地址检测、产生和检测7位/10位地址和广播呼叫和支持不同的通讯速度。 STM硬件I2C的状态标签如下: 发送器/接收器模式标志、字节发送结束标志、中先忙标志、错误标志 STM硬件有9个寄存器。 STM32硬件I2C的CLK在50kHz及以下情况下工作,短时间内不会出现任何情况下的卡住。 STM32硬件I2C的CLK在常用的100kHz和400kHz下工作,一小时内大概率出现卡住现象。 STM32硬件I2C的CLK在任何频率下工作,在读取或发送数据时不允许有其他中断事件干扰,否则将有卡住现象。 总的来说,STM32硬件I2C是个坑,对正常工作的环境要求非常高
[单片机]
使用STM32微控制器系列中的DAC生成音频和波形之应用实例
《使用DAC生成正弦波形》 1、说明 本示例分步说明如何生成正弦波形。 正弦波形也称作单频正弦波音,它是一种纯音或绝对音。在确定听觉系统的各种响应时,正弦音一般用作刺激源。 2、准备数字模式的正弦波形 要准备数字模式的波形,需要进行一些数学运算。这里的目标是产生正弦波的 10 个数字模式数据(采样),变化范围为 0 到 2*PI。 采样间隔为 (2*PI)/ ns (采样数)。 sin(x) 的结果值在 -1 到 1 之间,经过必要的重新校准后,可以生成 0 和 0xFFF 之间(对应电压范围为 0 V 到 3.3 V)的正向正弦波。 经过线性转换后,数字输入会转换为 0 到 VREF+ 之间的输出电压。 各 DAC 通道
[单片机]
二 STM32 CAN 波特率的确定
先看两份资料: (1),STM32 得到500Kb/s的波特率 CAN_InitStructure.CAN_SJW=CAN_SJW_1tq; CAN_InitStructure.CAN_BS1=CAN_BS1_8tq; CAN_InitStructure.CAN_BS2=CAN_BS2_7tq; CAN_InitStructure.CAN_Prescaler=1; 每一位的Tq数目 = 1 (固定SYNC_SEG) + 8 (BS1) + 7 (BS2) = 16 如果CAN时钟是 8 MHz : (8M / 1 ) / 16 = 500K 其中: 1 为分频系数 16 为每一位的Tq数目 为了设置为 100K,
[单片机]