摘要:1.板子硬件初始化rt_components_board_init():只能调用与硬初配置相关的初始函数;不能调用操作系统相关的操作函数,如查找操作系统中已经注册的设备; 2.如果要调用操作系统相关的函数才能完成相关的初始化,则可以将相应的初始化放在main函数中,因为mian是操作系统初化后运行的
阅读全文
摘要:在读电平信号时要注意:时钟信号准好后要延时一段时间读取; 时钟信号准好后,读取电平,延时后再读引脚电平,保证电平稳定后再读取;否则读到的电平不稳定,
阅读全文
摘要:/**************************************************************** * Function: Flash_EnableReadProtection * Description: Enable the read protection of
阅读全文
摘要:1.实现方法 1.1.MCU支持DMA双缓冲 1.2.用DMA的半传输完成中断,传输完成中断实现双缓冲,及将一个缓冲区分成两部分,半传输完成中断后,DMA将使用后半部分的DMA缓冲区,程序可以处理缓冲区前半部分的数据,传输完成中断后,DMA将使用前半部分的缓冲区,程序可处理后半部分的数据; 2.优点
阅读全文
摘要:1.外设时钟使能;没有配置会导致参数配置不到外设寄存器中; 2.根据需要配置外设参数;否则无法得到相要的外设功能 ; 3.DMA参数配置; 3.中断优先级配置; 5.中断使能; 6.在外设上进行数据传输;驱动层; 7.根据需要对数据处理;应用层;
阅读全文
摘要:1.__packed 或 __attribute__((packed)) 这两个关关键子是编译系统的关键字,用到给出于这两个关键字声明的类型或变量的对齐方式为字节对齐,对结构体来说,不会按成员的类型进行对齐,可以节约内存空间,但CPU在访问速度会降低; 在自定义的通信结构体中可以按字节进行数据的打包
阅读全文
摘要:红外学习功能: 1.思路: 1.1.底层硬件驱动: 1.1.1.学习红外指令:接收,采用定时器的输入捕获功能;配置定时器计数时钟的频率为1us,计数周期为10ms;开启定时器更新中断,启动定时器工作在输入捕获中断模式; 配置为输入捕获极性为上升沿,当上升沿出现,进入中断,读捕获比较寄存器值为低电平宽
阅读全文
摘要:一 硬件电路 1.图路红色方框内为MCU到外部按键的串联保护电阻,防止外路电路接地时,MCU设置输出高电平而烧坏MCU; 二、按键FIFO驱动设计 1.驱动框架
阅读全文
摘要:1.在软件中处理时间的问题时最好将小时,分钟,秒等转换为秒然后处理,处理完成后在转换为小时,分钟,秒;
阅读全文
摘要:1.用枚举类型生成一个状态机; 2.当状态机为过程状态机,最终需要到达某个确定的状态,而中间状态需要设计状态超时时要对整个状态机进行超时设计; eg. 1.AT指令操作WiFi模块; //WIFI状态机状态定义 typedef enum _WIFI_STATUS { WIFI_DISCONNECT,
阅读全文
摘要:当采用OS时,SysTick定时器(24位,向下计数)作为OS的系统时钟,SysTick定时器不能被修改,如果想用SysTick定时器实现精确延时只能读取SysTick定时器中的计数值: 例如:delayUs(100) 延时100us; 1.在进入delayUs函数时计算达到100us延时需要的Sy
阅读全文
摘要:根据需要使用某个SOC外设时: 第一步:初始化与这个SOC外设(如.串口)无关的SOC参数(波特率,奇偶校验,停止位 ); 第二步:初始化这个SOC相关的的参数(具体用到了SOC上的哪些资源,管脚资源),在Msp函数中实现;
阅读全文
摘要:1.封装函数参数:用结构体变量做为函数的参数,可以为函数传入多个参数; 2.定义通信协议体:将通信协议的固定格式用结构体定义,收到数据后直接套用(将收到的数据读到协议结构体定定的变量中),实现对协议解析; 3.将MCU相关的寄存器组织在一起:把结构体和寄存器的地址对应起来,可以通过操作结构体来达到操
阅读全文
摘要:#include "gd32f10x.h" /** * @breaf 红外摇控器发射红外信息,红外接收传感器的接收信号,判断接收到的是0 还是 1, * 破解摇器的控制码 * * detailed 使用定时器的捕获功能;读取红外接收传感器输出引脚脉冲宽度(us高电平)。 * 实现方法,将定时器初始化为捕获上升沿,捕获到上升沿,清空定时器计数值,将定时器 * 设置为捕获到下降沿,捕获到下降沿,读...
阅读全文