GD国产芯片替换STM32芯片

本文讨论了在将STM32F103VCT6芯片替换为GD32F103VCT6芯片过程中遇到的三个主要问题:ADC采样值偏低、PD11 IO口上电电平异常以及中断处理的差异。针对ADC问题,检查了配置和采样时间设置;IO口问题可能与上电序列有关;中断处理差异提示需要关注启动文件和库函数的同步替换。解决这些问题对于成功移植代码至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

受芯片价格影响,最近要将stm32芯片替换为GD芯片,代码移植过程中有3个问题

老平台stm32f103vct6,新平台GD32f103vct6。

问题1:相同配置下ADC采样值会偏低

u16 ADCData[4];
void ADCx_GPIO_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStruct;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//GD芯片要先打开时钟
	
	GPIO_InitStruct.GPIO_Pin = (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN;

	GPIO_Init(GPIOC, &GPIO_InitStruct);

}

static void ADCx_Mode_Config(void)
{
	// DMA 模式配置
	DMA_InitTypeDef DMA_InitStructure;

	RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
	
	DMA_DeInit(DMA1_Channel1);

	DMA_InitStructure.DMA_PeripheralBaseAddr = ( u32 ) ( & ( ADC1->DR ) );
	DMA_InitStructure.DMA_MemoryBaseAddr = (u32)ADCData;
	DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
	DMA_InitStructure.DMA_BufferSize = 4;
	DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
	DMA_InitStructure.DMA_MemoryInc &
<think>好的,用户询问的是关于STM32F103C8T6芯片的使用方法、替换方案和开发教程。首先,我需要回忆一下这个芯片的基本信息。STM32F103C8T6是STMicroelectronics的Cortex-M3微控制器,属于STM32F1系列,主频72MHz,64KB Flash,20KB RAM,常见于各种嵌入式应用。 关于使用方法,我应该从开发环境搭建开始。常用的IDE有Keil MDK、IAR Embedded Workbench,还有免费的STM32CubeIDE。需要安装相应的工具链和STM32CubeMX进行引脚配置。然后硬件连接部分,用户可能需要知道如何连接电源、调试接口(比如ST-LINK或J-LINK)、以及外设如GPIO、USART等。接着是项目创建步骤,使用CubeMX生成初始化代码,添加用户代码,编译下载。 替换方案方面,需要考虑引脚兼容性和性能。同系列的STM32F103C8T6的替代型号可能有STM32F103CB或CBT,Flash和RAM更大。不同系列的话,比如STM32F4系列的性能更强,但引脚可能不完全兼容。另外,国产替代芯片GD32F103系列,但需要注意兼容性和开发环境的调整。 开发教程部分,官方文档和资料是首要推荐的,比如参考手册和数据手册。在线资源如ST社区、GitHub上的开源项目,以及视频教程平台如B站、YouTube上的入门课程。书籍方面,可以推荐一些经典的STM32开发书籍。 需要确保回答结构清晰,分点说明,同时检查是否有遗漏的重要信息。例如,替换方案中的注意事项,比如时钟配置可能不同,或者外设寄存器的差异,这些都需要提醒用户。开发教程中,可能还需要提到常见的调试工具和步骤,比如使用ST-LINK进行调试和烧录。 另外,用户可能没有明确说出他们目前遇到的困难,比如开发环境配置的问题,或者替换芯片时的具体兼容性问题,所以回答中需要涵盖这些潜在的问题点,并提供解决方案或参考资源。最后,生成的相关问题应该围绕用户可能进一步需要的信息,比如具体某个开发环境的使用教程,或者替换芯片时的步骤细节。</think># STM32F103C8T6芯片使用指南 ## 一、基础使用方法 ### 1. 开发环境搭建 - **工具链选择**:推荐使用$STM32CubeIDE$(免费)或$Keil\ MDK$(商业授权) - **驱动安装**:需安装$ST-LINK/V2$调试器驱动 - **配置工具**:使用$STM32CubeMX$进行引脚分配和代码生成[^2] ### 2. 硬件连接要点 - 供电接口:$VDD=2.0-3.6V$,需稳定电源输入 - 调试接口:SWD模式连接$SWDIO$和$SWCLK$ - 最小系统电路:需配置$8MHz$晶振和复位电路 ```c // 示例GPIO控制代码(HAL库) HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); HAL_Delay(500); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); ``` ## 二、替换方案对比 | 型号 | Flash容量 | RAM容量 | 兼容性等级 | 价格区间 | |----------------|-----------|---------|------------|----------| | STM32F103
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值