Car12
嵌入式开发,爱好者
展开
-
stm32 8080时序驱动lcd屏幕
经过测试探索者开发板使用模式A和模式B都可以驱动lcd驱动,主要是时序参数必须和lcd驱动芯片一致。fsmc相关的gpio配置位推挽复用模式。他这里使用的是FSMC的NOR 模式B。 2. 使用SRAM存储器模式。他们使用EXMC驱动外部lcd。 3. 16位数据宽。gpio,fsmc时钟使能。 2.数据建立时间。 2.数据建立时间。 3.使用模式A。 3.使用模式A。 4. 写使能。背光gpio输出配置。 1.地址建立时间。fsmc控制相关配置。原创 2024-09-01 09:00:47 · 377 阅读 · 0 评论 -
基于gd32f103移植fal Flash 抽象层
在头文件中需要实现接口: Flash 设备的名字,这个名字在定义分区表要使用。0x08000000: 对 Flash 操作的起始地址。1024*1024:Flash 的总大小(1MB)。128*1024:Flash 块/扇区大小(因为 STM32F2 各块大小不均匀,所以擦除粒度为最大块的大小:128K)。:Flash 的操作函数。如果没有 init 初始化过程,第一个操作函数位置可以置空。8。原创 2024-08-13 20:45:00 · 54 阅读 · 0 评论 -
flash均衡磨损--实时保存设备数据
【代码】flash均衡磨损--实时保存设备数据。原创 2024-05-23 14:31:17 · 206 阅读 · 1 评论 -
flash均衡磨损--循环存储--固定大小
flash均衡磨损--循环存储--固定大小原创 2024-05-23 13:32:19 · 309 阅读 · 0 评论 -
沁恒CH32V30X学习笔记07---多功能按键框架使用
MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步处理方式可以简化你的程序结构,去除冗余的按键处理硬编码,让你的按键业务逻辑更清晰。原创 2024-02-19 12:08:05 · 174 阅读 · 0 评论 -
基于gd32f103移植freemodbus master 主栈
1.移植freemodbus master需要先移植RT-Thread操作系统2.移植freemodbus master协议栈在移植了RTT以后,我们需要移植就只有串口相关的函数移植freemodbus master协议栈具体步骤。原创 2024-01-18 13:51:20 · 333 阅读 · 0 评论 -
GD32F103C8T6移植 RTT Nano 教程
函数内部调用 rt_os_tick_callback();原创 2024-01-17 09:48:39 · 140 阅读 · 0 评论 -
基于GD32F103使用串口不同的中断实现freemodbus移植
中断 还是需要修改mbfunccoils.c,mbfuncdisc.c,mbfuncholding.c,mbfuncinput.c文件;中断中断需要手动发送一次数据,即需要修改mbrtu.c文件的eMBRTUSend()函数。不需要修改修改mbrtu.c文件的eMBRTUSend()函数。使用串口不同的中断实现freemodbus移植。需要修改串口使能接口函数。需要修改串口中断函数。原创 2024-01-16 21:12:15 · 161 阅读 · 0 评论 -
基于GD32F103移植freemodbus从机库
首先说明github下载的freemodbus开源库不可以使用,需要修改。原创 2024-01-16 14:52:13 · 264 阅读 · 0 评论 -
基于AT32F421的freemodbus 移植
从github下载的开源库需要修改才可以使用,不可以直接使用modbus 指令。原创 2024-01-15 16:52:33 · 173 阅读 · 0 评论 -
【GD32F103】自定义程序库08-DMA+ADC
自定义函数库说明:将DMA先关的变量方式在一个机构体中封装起来,主要参数有使用一个枚举类型指明每个DMA绑定到那个外设来使用,枚举的最后一个元素表示DMA数量定义一个数组,将所有相关的DMA变量,填写到数组中即可,这个数组也就是后边修改的位置如果使能dma中断,dma接收数据完成产生中断。原创 2023-07-21 22:37:25 · 925 阅读 · 0 评论 -
【GD32F103】自定义程序库07-PWM配置库
自定义函数库说明:将pwm先关的变量方式在一个机构体中封装起来,主要参数有使用一个枚举类型指明每个pwm作为什么功能(如电机控制来使用,枚举的最后一个元素表示pwm数量定义一个数组,将所有相关的pwm变量,填写到数组中即可,这个数组也就是后边修改的位置。原创 2023-07-21 22:35:43 · 459 阅读 · 0 评论 -
【GD32F103】自定义程序库06-基本定时器,实现定时中断
自定义函数库说明:将TIME_BASE相关的变量方式在一个机构体中封装起来,主要参数有定时器编号定时器时钟预分频自动重载值中断编号超时中断使能超时中断回调函数使用一个枚举类型指明每个TIME_BASE作为什么功能使用,枚举的最后一个元素表示TIME_BASE数量定时器超时产生中断,调用超时回调函数,回调函数不应处理耗时任务。原创 2023-07-21 22:31:39 · 984 阅读 · 0 评论 -
【GD32F103】自定义程序库05-开源库CJSON使用记录
json处理函数库CJsoncJSON.h/* Copyright (c) 2009-2017 Dave Gamble and cJSON contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the原创 2023-07-21 22:29:51 · 979 阅读 · 0 评论 -
【GD32F103】自定义程序库04-串口空闲中断接收数据+回调函数
【代码】【GD32F103】自定义程序库04-串口空闲中断接收数据+回调函数。原创 2023-07-21 22:28:34 · 763 阅读 · 0 评论 -
【GD32F103】自定义程序库03-gpio中断
gpio中断。原创 2023-07-21 09:44:12 · 525 阅读 · 0 评论 -
【GD32F103】自定义程序库02-gpio输出
【代码】【GD32F103】自定义程序库02-gpio输出。原创 2023-07-21 09:13:50 · 166 阅读 · 0 评论 -
【GD32F103】自定义程序库01-gpio输入框架
【代码】【GD32F103】自定义程序库01-gpio输入框架。原创 2023-07-21 09:12:51 · 186 阅读 · 0 评论 -
AT24CXX 的读写方法
在嵌入式设计中,E2PROM存储芯片常被应用于需要掉电存储,且容量不大的场合。,因此,更适合于数据量存储不大,且更需要频率擦写的应用场景。原创 2023-03-24 15:29:53 · 536 阅读 · 0 评论 -
GD32F103C8T6入门教程20-独立看门狗-FWDGT
当内部向下12位计数器的计数值达到0,独立看门狗会产生一个复位独立看门口预分频参数和参数对照表。原创 2022-10-20 16:15:12 · 1817 阅读 · 0 评论 -
GD32F303RET6 串口空闲中断+DMA数据发送接收+环形缓冲区方式保存数据
使用dma发送结束数据,保存数据使用环形缓冲区原创 2022-09-13 10:40:33 · 2026 阅读 · 0 评论 -
SEGGER 的硬件异常 分析
SEGGER 的硬件异常 分析原创 2022-07-28 18:18:42 · 693 阅读 · 0 评论 -
有刷电机的速度pid-位置pid算法
1. 电机pwm实现--定时器pwm输出2. 电机速度采集--定时器编码器3. pid核心算法实现4. 电机控制函数实现5. 循环处理速度和pid计算的定时器6. 正点原子的调试pid助手使用原创 2022-07-26 15:33:53 · 2565 阅读 · 2 评论 -
26. GD32F103C8T6入门教程--正交编码器的使用
正交译码器功能使用由TIMERx_CH0TIMERx_CH1引脚生成的CI0和CI1正交信号各自相互作用产生计数值。在每个输入源改变期间,DIR位被硬件自动改变。正交译码器可以当作一个带有方向选择的外部时钟,这意味着计数器会在0和自动加载值之间连续的计数。CI0,可以只有CI1,或着可以同时有CI0和CI1。......原创 2022-07-15 14:04:12 · 4965 阅读 · 0 评论 -
GD32F103/303串口+空闲中断连续接收数据
GD32F103/303串口+空闲中断连续接收数据原创 2022-06-16 11:25:36 · 2479 阅读 · 1 评论 -
GD32 关于PB3,PB4,PA15 的GPIO工作不正常的问题-设置为普通gpio
修改pb3 和pb4为普通io原创 2022-06-15 15:09:18 · 3895 阅读 · 0 评论 -
使用GD32F303RET6 驱动NRF24L01
使用gd32驱动nrf2401原创 2022-06-10 15:18:26 · 763 阅读 · 1 评论 -
26. GD32F103C8T6入门教程-CAN外设回环测试
1.基础知识外设特征:3个发送邮箱2个深度为3个邮箱的接收FIFO自动重传自动唤醒发送、接收时间戳最大速率1Mbps3种工作模式睡眠模式:可以检车总线状态自动唤醒初始化工作模式:如果需要对 CAN 总线通信参数调整, CAN 必须进入初始化工作模式正常工作模式:4中通讯模式:静默通讯模式回环通讯模式:发送的数据又可以被自己接收,同时这些发送数据也送至 CAN 网络静默回环模式:CAN 总线控制器既不从CAN 网络接收数据,也不向 CAN 网络发送数据正常模式:数原创 2022-04-18 15:57:06 · 5196 阅读 · 3 评论 -
25. GD32F103C8T6入门教程-移植FreeRTOS
程序移植的代码:移植方法和stm32一样的哦模板工程建立方法1. 在工程下建议FreeRTOS文件夹2. 在FreeRTOS文件夹下建立 src 和 port 文件夹 (src用于存放freertos源码,port文件夹存放内存和接口相关的文件)3. 复制freertos/source文件夹下所有c文件复制到刚刚建立的freertos/src目录下4. 复制FreeRTOSv9.0.0\FreeRTOS\Source\portablex下的MemMang和RVDS文件夹复制到刚刚建立的po原创 2022-04-17 19:42:24 · 2386 阅读 · 0 评论 -
24. GD32F103C8T6入门教程-IAP升级教程
GD32f103C8T6 IAP 升级教程参考stm32的IAP升级原理GD32和stm32的内核都是一样的,又因为IAP升级主要涉及升级的路径之和内核先关,所以gd32和stm32升级IAP升级是一样的。0.升级原理GD32的内部(FLASH)地址起始于0x08000000,一般情况下,程序就从此地址开始写入,此外GD32是基于Cortex-M3内核的微控制器,其内部通过一张“中断向量表”来响应中断,程序启动后,将首先从“中断向量表”取出复位中断向量执行复位中断程序完成启动,而这张“中断向量表原创 2022-04-17 19:17:36 · 7627 阅读 · 1 评论 -
23. GD32F103C8T6入门教程-RTC闹钟间隔10秒发生以此闹钟中断
例程:RTC闹钟间隔10秒发生以此闹钟中断头文件#ifndef __BSP_RTC_H__#define __BSP_RTC_H__#include "gd32f10x.h"#include <stdio.h>typedef struct _date_time{ uint16_t year; uint16_t month; uint16_t day; uint16_t hour; uint16_t min; uint16_t second;}date_time_t;原创 2022-04-14 16:13:11 · 1966 阅读 · 1 评论 -
22. GD32F103C8T6入门教程-RTC的时间设置、读取日历转换
例程:RTC的时间设置、读取日历转换头文件#ifndef __BSP_RTC_H__#define __BSP_RTC_H__#include "gd32f10x.h"#include <stdio.h>typedef struct _date_time{ uint16_t year; uint16_t month; uint16_t day; uint16_t hour; uint16_t min; uint16_t second;}date_time_t;/*测原创 2022-04-14 15:46:16 · 3582 阅读 · 4 评论 -
21. GD32F103C8T6入门教程-flash/fmc连续读写操作
gd32f103 的flash操作1.定义扇区大小/* 对于主存储闪存容量不多于512KB的GD32F10x_CL和GD32F10x_HD,只使用了bank0; 对 于 GD32F10x_MD , 闪 存 页 大 小 为 1KB 。 GD32F10x_CL 和 GD32F10x_HD ,GD32F10x_XD, bank0的闪存页大小为2KB, bank1的闪存页大小为4KB; *//*页大小*/#define FMC_PAGE_SIZE ((uint16_t)0x400原创 2022-04-14 10:29:29 · 3613 阅读 · 0 评论 -
20. GD32F103C8T6入门教程-adc使用外部中断IT11触发启动adc规则通道,使用外中断IT15触发注入组
adc 使用教程6-使用外部中断IT11触发启动adc规则通道,使用外中断IT15触发注入组ADC支持18个多路通道,可以把转换组织成两组:一个规则组通道和一个注入组通道规则组,可以按照特定的序列组织成多达16个转换的序列 ,注入组,可以按照特定的序列组织成多达4个转换的序列 ,数据保存在INDATAx(0-3)中规则通道转换完成后产生dma请求,注入通道转换完成后产生adc中断1.配置时钟和定义全局变量#include "gd32f10x.h"#include "stdio.h"#i原创 2022-04-13 10:47:39 · 2300 阅读 · 0 评论 -
18. GD32F103C8T6入门教程-adc-使用教程5-定时器TIM2更新事件触发adc0
adc 使用教程5-定时器TIM2更新事件触发adc0但是本实验出现了一个异常,单片机大概路出现更新事件没有启动ADC转换,可是没有找到处理办法,但是定时器的是正常工作LED灯闪烁1.使能各种时钟和adc时钟分频输入#include "gd32f10x.h"#include "stdio.h"#include "bsp_adc.h"#include "systick.h"#include "gd32f103c_sys.h"#define LED0 PBout(13)#define LE原创 2022-04-13 09:25:36 · 6829 阅读 · 0 评论 -
19. GD32F103C8T6入门教程-adc使用教程6-外部中断线11触发adc0
adc 使用教程6-外部中断线11触发adc0使用外部中断线11 触发ADC开始采集数据,PA11 gpio1.初始化时钟和定义全局变量/*保存ADC值*/uint32_t adc_value[4];/*dma传输结束*/uint32_t dma_finish;// 使能各种时钟和adc时钟分频输入void rcu_config_adc(void){ /*使能GPIO时钟 */ rcu_periph_clock_enable(RCU_GPIOA); /* 使能A原创 2022-04-17 21:25:10 · 1521 阅读 · 0 评论 -
17. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据++dma中断通知
adc 使用教程3-dma方式采集数据+dma中断通知adc 的扫描模式就是把配置了规则或注入通道按照配置的顺序采集一轮adc 的连续转换模式就是把配置了规则或注入通道按照配置的顺序采集N轮1.时钟配置/* 使能各种时钟和adc时钟分频输入*/void rcu_config_adc(void){ /*使能GPIO时钟 */ rcu_periph_clock_enable(RCU_GPIOA); /* 使能DMA时钟*/ rcu_periph_clock_原创 2022-04-12 15:59:57 · 3311 阅读 · 0 评论 -
16. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据
adc 使用教程2-dma+连续扫描方式采集数据adc 的扫描模式就是把配置了规则或注入通道按照配置的顺序采集一轮adc 的连续转换模式就是把配置了规则或注入通道按照配置的顺序采集N轮1.时钟配置/* 使能各种时钟和adc时钟分频输入*/void rcu_config_adc(void){ /*使能GPIO时钟 */ rcu_periph_clock_enable(RCU_GPIOA); /* 使能DMA时钟*/ rcu_periph_clock_ena原创 2022-04-12 15:33:48 · 2424 阅读 · 3 评论 -
15. GD32F103C8T6入门教程-adc单通道轮训采集
1.adc gpio初始化/* 使能各种时钟和adc时钟分频输入*/void rcu_config(void){ /*使能GPIO时钟 */ rcu_periph_clock_enable(RCU_GPIOA); /* 使能DMA时钟*/ rcu_periph_clock_enable(RCU_ADC0); /* enable DMA0 clock ADC 对应的DMA 就是DMA0*/ rcu_periph_clock_enable(RCU_原创 2022-04-12 15:30:41 · 1959 阅读 · 0 评论 -
14. GD32F103C8T6入门教程-Systick定时器
1、简介Cortex‐M3 处理器内部包含了一个简单的定时器。因为所有的 CM3 芯片都带有这个定时器,软件在不同 CM3 器件间的移植工作得以化简。该定时器的时钟源可以是内部时钟,或者是外部时钟。不过,STCLK 的具体来源则由芯片设计者决定,因此不同产品之间的时钟频率可能会大不相同,你需要查找芯片的器件手册来决定选择什么作为时钟源。Cortex-M3 的内核中包含一个 SysTick 时钟。SysTick 为一个 24 位递减计数器,SysTick 设定初值并使能后,每经过 1 个系统时钟周期,计数原创 2022-04-11 18:37:42 · 3117 阅读 · 1 评论