本帖最后由 电子烂人 于 2024-4-25 19:36 编辑
#申请原创# 很荣幸收到21IC的C031开发板,感谢21IC小跑堂和各位伙伴的支持和帮助。之前C031刚发布的时候就已经对该开发板有很高的关注度,ST给出的定位是:“取代8位单片机”,可以看到这是一个面向价格敏感型消费端的芯片产品。值得注意的是,C0系列不属于ST的“超低功耗系列MCU”产品线,而是属于ST的“主流MCU”,足以见得ST对这片芯片的重视。
此外,ST还为C0系列产品生产了一系列教程,方便习惯使用8/16位单片机的工程师入门。
网站链接:STM32C0x1 - 意法半导体STMicroelectronics
最近在忙着做ADC测量相关仪器的产品,所以这次用C031-NUCLEO开发板试制作一个ADC角度测量仪
1.环境及初始化:
这次的开发环境选择为广大工程师习惯使用的MDK5-arm,各功能的初始化使用STM32cubeMX
在“BOARD SELECT”中选择nucleo-c031开发板,配置时钟主频为48MHZ(习惯拉满)。
开发板的两个晶振全部焊接,故将时钟选择为“外部陶瓷/晶体震荡”,提高时钟稳定性。
实际开发中如果对成本敏感的话,也可以选择使用C0系列自带的“内部时钟”。
使能DEBUG,方便后续调试。
接口部分保留一组UART和SPI,方便外接屏幕和数据输出。
ADC部分,设置为12BIT采样率,开启“持续采集”
配置完毕后,选择MDK环境生成代码。
2.代码配置:打开生成的工程如图:
在变量栏配置变量如下:
/* USER CODE BEGIN PFP */
<blockquote>uint16_t adc_start_num;
配置任务函数,开启ADC采集
/* USER CODE BEGIN 0 */
uint16_t ADC_Get_Task(uint16_t adcVal);
/* USER CODE END 0 */
主函数循环如下:
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_SPI1_Init();
MX_ADC1_Init();
MX_USART1_UART_Init();
<blockquote>/* USER CODE BEGIN 2 */
3.实物插接线如图
电位器两端1、3接电源和地,2号端子接A0进行ADC采集
4.效果展示
|