嵌入式
yilizhihu
这个作者很懒,什么都没留下…
展开
-
STM32 RTC例程
STM32F103中的RTC模块例程原创 2022-07-10 16:07:45 · 660 阅读 · 1 评论 -
stm32 ADC单次中断采集
本例程平台是STM32F103VCT6, 标准库配置PA7ADC2的第8个模数转换通道。初始化如下u16 AdcValue = 0;static void ADC_NVIC_Config(void){ NVIC_InitTypeDef NVIC_InitStructure; // 优先级分组 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 配置中断优先级 NVIC_InitStructure.NV原创 2021-10-18 16:54:43 · 2171 阅读 · 0 评论 -
软件版本控制
对于嵌入式软件开发人员而言,版本控制是一个绕不开的话题。好的版本控制可以极大提高开发效率,缩短开发周期,降低后期维护难度。常见的项目开发模型:1.异地多个人,团队共同维护一套代码;2.局域多个人,团队共同维护同一套代码;3.单人开发,1个人负责整个软件的开发,维护。4.单人开发 + 团队开发。该模式较为常见,先在本地编写代码,测试。然后进行团队review,将代码提交特定服务器。版本控制的常用方式一、本地保存,例如我早期都是在电脑本地保存各个版本的代码,通常以日期命名,遇到重原创 2021-10-07 16:33:40 · 933 阅读 · 0 评论 -
git软件版本控制工具介绍
git是一种分布式软件版本控制工具。本文介绍git软件的特点1.几乎所有的操作都在本地执行,所以执行速度快。Git是用C编写的,减少了与高级语言相关的运行时开销。速度和性能从一开始就是Git的主要设计目标。该软件也逐步在国内流行。2.分布式管理:在分布式下,本地有个代码仓库,开发者可以在本地提交,同时支持本地版本控制工作。每个用户基本上都有主服务器的完整备份。在崩溃或损坏的情况下,这些副本中的每一个都可以向上推以替换主服务器。3.官网介绍有图形界面的客户端,但是复杂操作还是用命令行方式操作。学习原创 2021-10-07 14:04:07 · 374 阅读 · 0 评论 -
迪文屏使用总结
使用迪文DTM80600T080_07WTZ05电容屏,该屏幕的灵敏度控制寄存器操作时要注意:1.首先写0XE0寄存器,该寄存器是控制0XE1~0XE5的开关;2.这6个寄存器尽量在一帧数据中;例如:5A A50880E05A5A1F1E080A //同时操作了0XE0~0XE5,不带CRC校验建议一次写完,也可以先操作0XE1~0XE5,后操作0XE0;...原创 2021-08-10 15:17:07 · 2775 阅读 · 0 评论 -
stm32 LL库常见模块配置
void input_config(void){ LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */ LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOB); GPIO_InitStruct.Pin = LL_GPIO_PIN_5; GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT; .原创 2021-06-20 09:16:30 · 1324 阅读 · 0 评论 -
GD国产芯片替换STM32芯片
受芯片价格影响,最近要将stm32芯片替换为GD芯片,代码移植过程中有2个问题老平台stm32f103vct6,新平台GD32f103vct6原创 2021-06-20 09:01:06 · 5449 阅读 · 3 评论 -
STM32用OCToggle模式产生单脉冲
平台:KEIL5+stm32f103。功能:采用TIM3的1,2通道的比较翻转模式产生宽度可调的单脉冲(本例的脉冲宽度200us/100us),脉冲之间间隔1s。目前网上流传较多的方案一般2种:第一种:外部IO做触发源,定时器接收后产生脉宽;第二种:用定时器的主从或门控模式,用一个定时器驱动另外一个定时器。这两种方案要么需要外部IO,要么需要2个通用或高级的定时器,占用资源相对较多。本方案...原创 2020-03-22 08:27:08 · 1467 阅读 · 0 评论 -
STM32 PWM+DMA输出自动调整占空比的方波
平台:KEIL5+stm32f103功能:用TIMER3在通道1上输出一个频率为36KHz,占空比自动变化的PWM波形。为了效果更明显,我把其他通道都打开了。代码如下:这个代码是在官方例程的基础上加了一些修改:1.增加设置PWM的频率和占空比的函数,方便调用;2.增加了关闭通道的功能(在该例程中没有使用);#define DUTY_CYCLCE_BUF_LEN 6//...原创 2020-03-18 09:22:58 · 6194 阅读 · 4 评论 -
STM32 TIMER3 OCToggle模式输出占空比可调的方波
平台:stm32+keil5功能:用TIMER3的OCToggle模式产生占空比非50%的方波OCToggle模式可以产生多路频率不同的方波,而PWM只能产生多路频率相同的方波。代码如下:因为使用了中断,所以代码有2部分:第一部分是功能配置,第二部分是中断处理:__IO uint16_t CCR1_Val = 32768;__IO uint16_t CCR2_Val = ...原创 2020-03-18 09:21:17 · 1974 阅读 · 0 评论 -
STM32硬件IIC读写EEPROM
前面一篇写了软件模拟IIC读写EEPROM。本篇介绍硬件IIC读写EEPROM。平台是STM32F103+AT24C04N。SDA和SCL接5K上拉电阻到3.3v。首先介绍AT24C04N的基本特性。512byte。支持1.8v~5.5v供电。支持5种读写模式。BYTE WRITE(字节写),PAGE WRITE(按页写)。RANDOM READ(随机读),SEQUENTIAL READ(...原创 2020-03-05 10:25:22 · 5070 阅读 · 2 评论 -
STM32重定向printf
本人最近项目代码移植时候,需要将printf定向到串口调试使用。用的是Keil+stm32f103 过程如下:第一步,把相关代码移植过来。用的是串口1,PA9和PA10作为TX和RX。//uart1.c文件#include "uart1.h"#include <stdarg.h>void USART1_Config(void){ GPIO_InitTypeDef...原创 2020-03-02 16:01:57 · 464 阅读 · 1 评论 -
中断、异常与事件
在嵌入式系统中,中断、异常与事件这三个概念常常出现,而且3者对于不同的架构也有些差异。Cortex-M3权威指南》手册中这样叙述:“异常”与“中断”都是指当发生“事件”时,处理器改变正常执行流,去 响应该事件的情况。只不过异常之于处理器是同步的,中断之于处理器是异步的。因此常混合使用二术语,ISR 和 ESR 也混合使用,请读者不必工于辨析这两个术语的不同,在这里这不是重点。则中断与异...原创 2020-03-02 11:29:20 · 1386 阅读 · 0 评论 -
STM32模拟IIC读写EEPROM
本人在最近的项目中,需要读写EEPROM里面的内容并分析。该EEPROM芯片为24LC02B系列。用STM32F103芯片做主机通过IIC接口去和它通信。首先介绍芯片的基本特性,容量为 :256 x 8bit ,2Kbit共有256字节 ;地址和数据都是8bit;电源供电2.5V-5.5V;IIC支持最高速率400K;支持单字节写和按页写两种,写数据后最大需要延时5ms;支持连续读,单字节读和...原创 2020-02-27 16:57:22 · 2807 阅读 · 0 评论 -
STC单片机(三)
1.使用绝对定位:将某个变量定位到flash某个地址例如,将gflashdata 变量定位到falsh的0xf00位置,51与arm不同,在arm中可以使用以下方式:const char gflashdata[6]__attribute__((at(0x0800F000))) = {0x5a,0x5a,0x5a,0x5a,0x5a,0x5a};但是在stc的51单片机中不支持这种...原创 2019-12-28 09:50:27 · 815 阅读 · 0 评论 -
µC/OS-III系统之《基于嵌入式实时操作系统的程序设计》学习(一)
《基于嵌入式实时操作系统的程序设计技术(第2版)》,作者:周慈航;该书介绍了在“嵌入式实时操作系统”环境下的程序设计技术。以实际项目为例子,介绍实时操作系统开发中的知识点,问题点和经验,相比其他教材,实用性很强,适合有一定基础的人。第三章介绍了实际使用时任务划分的原则和方法,其中任务划分列举了7种方法:一、设备依赖性任务的划分;二、关键任务的划分;三、紧迫任务的划分;...原创 2019-12-14 11:28:08 · 645 阅读 · 0 评论 -
STC单片机(二)
本节以STC12C5A60S2为例介绍最小系统。最小系统考虑3方面内容:1.供电电压(3v/5v);2.复位电路;3.时钟电路;首先考虑,供电一般选择3v,5v都可以,注意,电源与地接小电容。其次考虑时钟,当时钟选择内部RC震荡电路时,不用外接晶振,只需要把XTAL1和XTAL2悬空即可。此时只需要留意内部RC电路的频率,室温条件下,5v供电时,频率为11~17...原创 2019-12-10 09:49:15 · 677 阅读 · 0 评论 -
STC单片机(一)
本节解答上节烧录留下的问题一、内部RC震荡电路与外部晶振区别在STC12C5A60S2官方手册中有如下表述这里面讲到对时序有严格要求或者串口通讯时,不建议用内部RC,理由“relatively large errors due to internal clock” .那么内部时钟的误差来源于RC本身特性:温度等外界环境中,频率不稳定;此外内部RC电路频率是固定的,单一的,用...原创 2019-12-07 10:15:43 · 1032 阅读 · 0 评论 -
STC单片机烧录
STC单片机是最常用的单片机之一;下载代码需要7步进行第一步:硬件连接好后,打开stc-isp-15xx-v6.86.exe;第二步:选择单片机型号;如果单片机外接晶振,就将此步中,“硬件选项”中“选择使用内部IRC时钟(不选为外部时钟)”选项去掉。第三步:选择要烧录的文件;第四步:断掉单片机电源,给单片机下电,这是为了之后单片机“冷启动”;第五步:点击“...原创 2019-12-07 10:15:30 · 6677 阅读 · 0 评论 -
IIC协议总线——总结
IIC采用主从(Master-Slave)通信,适用于短距离,中低速设备通信,每次都是主机发起通信,和结束通信;从机不能主动发起通信。空闲时:SDA和SCL保持为高,此时从机要完全释放总线。这个阶段SDA控制权在主机总线空闲状态时,通信开始时的start信号产生:SDA由高变低。这个阶段SDA控制权在主机地址发送:在上阶段的基础上,接下来主机发送clk信...原创 2019-10-29 17:58:30 · 1958 阅读 · 0 评论