芯源CW32L010环境搭建:下载资料;编译下载代码;使用通用DAPLINK下载看串口打印

从事嵌入式单片机的工作算是符合我个人兴趣爱好的,当面对一个新的芯片我即想把芯片尽快搞懂完成项目赚钱,也想着能够把自己遇到的坑和注意事项记录下来,即方便自己后面查阅也可以分享给大家,这是一种冲动,但是这个或许并不是原厂希望的,尽管这样有可能会牺牲一些时间也有哪天原厂让我停更的可能,但是我依旧乐于此,如果哪位道友想一起交流或者原厂同志想让我停更以及其他事项都可通过如下邮箱联系我:2478278759@qq.com

这里想通过UART来验证,所以把串口也接上了,实际是不需要串口的:
在这里插入图片描述

下载资料

在"武汉芯源半导体"公众号的这里点击MCU进入官网:
在这里插入图片描述
按照芯片型号搜索:
在这里插入图片描述
然后在这里选择资料下载就行:

### CW32L010 ADC 使用教程 CW32L010 是一款由武汉半导体有限公司推出的高性能、高性价比片,适用于多种应用场景,尤其是仪器仪表设计领域[^5]。该片内置的模数转换器 (ADC) 提供了较高的精度和灵活性,能够满足大多数嵌入式系统的模拟信号采集需求。 以下是关于 CW32L010 片中 ADC 的使用方法及相关配置: #### 1. ADC 基本特性 CW32L010 的 ADC 支持单端输入或多路差分输入模式,具备高达 12 位的有效分辨率。其采样速率可以根据具体应用调整,在快速模式下支持更高的采样频率。此外,ADC 还集成了硬件自动校准功能以及温度传感器接口,便于实现精确测量[^1]。 #### 2. 配置流程 要启用并正确使用 CW32L010 的 ADC 功能,需完成以下几个方面的初始化设置: ##### (1)时钟配置 ADC 的工作依赖于内部时钟,因此需要先通过 RCC(Reset and Clock Control)模块为 ADC 设置合适的时钟频率。通常建议将 ADC 时钟设定为其最大允许范围内的较低值以减少噪声干扰。 ```c // 启用 ADC 所需外设时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC, ENABLE); ``` ##### (2)通道选择与扫描模式 根据实际需求指定参与转换的一个或多个输入通道,并决定是否开启连续转换或者逐次逼近方式下的多通道轮询操作[^3]。 ```c ADC_InitTypeDef ADC_InitStructure; ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; // 单独运行模式 ADC_InitStructure.ADC_ScanConvMode = ENABLE; // 开启扫描模式 ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; // 关闭连续转换 ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; // 右对齐数据格式 ADC_InitStructure.ADC_NbrOfChannel = 1; // 总共使用的通道数量 ADC_Init(ADC1, &ADC_InitStructure); // 初始化 ADC1 ``` ##### (3)触发机制定义 可以选择软件触发或是外部事件作为启动条件来控制每次 A/D 转换过程的发生时刻[^4]。 ```c // 设置为软件触发 ADC_SoftwareStartConvCmd(ADC1, ENABLE); ``` ##### (4)中断和服务程序编写 当一次完整的转换结束后可能希望立即获取结果,则应注册相应的 ISR 并在其中读取寄存器内容保存下来待后续处理[^2]。 ```c void NVIC_Configuration(void){ NVIC_InitTypeDef NVIC_InitStruct; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStruct.NVIC_IRQChannel = ADC_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0x01; NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0x00; NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStruct); } void ADC_IRQHandler(void){ if(ADC_GetITStatus(ADC1, ADC_IT_EOC)){ uint16_t adcValue = ADC_GetConversionValue(ADC1); // 对adcValue进行进一步计算或其他逻辑判断 ADC_ClearITPendingBit(ADC1, ADC_IT_EOC); } } ``` #### 3. 数据处理技巧 对于来自 ADC 的原始数值,往往还需要经过一定的算法优化才能得到更加平滑稳定的最终显示效果。例如采用均值滤波法去除随机误差的影响等常见技术手段。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值