论坛» 活动中心» 板卡试用

【换取手持数字示波器】N32G430点亮数码管与串口打印、ADC

助工
2024-04-17 20:13 1楼

国民技术N32G430是一款功能强大的MCU,基于安全SoC技术平台架构,采用32位Arm® Cortex®-M处理器内核。它集成了高性能、高集成度、安全、低功耗、高可靠性等特点,适用于各种智能应用。关于您提到的点亮数码管、串口打印和ADC(模数转换器)功能,以下是一些相关信息:

  1. 点亮数码管:

  • 通常数码管的点亮涉及到GPIO(通用输入输出)的配置和驱动。需要查阅N32G430的GPIO控制文档,了解如何配置GPIO引脚以驱动数码管。

  • 需要特定的库或函数来实现数码管的点亮,查阅国民技术的官方文档或社区论坛,看是否有相关的示例代码

  • 或库可供使用,我这里就用IO口驱动,实现功能。

  1. 串口打印:

  • N32G430的串口(Usart1)可以用于打印输出。通常,这涉及到串口的初始化配置,波特率、数据位、停止位等。

  • 使用标准的串口通信协议,RS-232,通过Usart1将数据发送到外部设备(计算机、调试器等)进行显示或分析。

  • 在国民技术的开发文档中,应该能够找到关于串口初始化和使用的详细指南和示例代码。

  1. ADC(模数转换器):

  • N32G430具有高性能的ADC功能,对于模拟信号的数字化处理非常有用。

  • ADC的配置通常包括选择输入通道、设置采样率、分辨率等参数。

  • 通过查阅N32G430的ADC相关文档,了解如何配置和使用ADC功能。涉及到ADC模块的初始化、启动转换、读取转换结果等步骤。

  • 国民技术的官方文档和示例代码应该能够提供关于ADC使用的详细信息和指导。

首先上原理图,开发板与各个功能的搭接。

ABCDEFG是接的数码管;

ADC_IN16是接的NTC,检测室温


image.png

驱动模块板原理图:image.png

串口电脑检测到的是COM11。

image.png

串口输出结果:

image.png

开发板与数码管的杜邦线连接方式如图:

image.pngADC采集的值:

image.png

代码主要完成以下任务:

  1. 设置中断优先级。

  2. 初始化按键输入。

  3. 初始化定时器。

  4. 初始化ADC。

  5. 初始化LED(数码管)。

  6. 初始化串口。

驱动对应的工作。

// uint16_t ADC_Value = 0; // 定义一个16位无符号整数变量ADC_Value,并初始化为0 // uint16_t ADC_Valuea = 0; // 定义一个16位无符号整数变量ADC_Valuea,并初始化为0 // extern void BasicTimer6_Init(uint16_t period, uint16_t prescaler); // 声明外部函数,用于初始化基本定时器6 // extern void EXIT4_Macro_PA4(void); // 声明外部函数,用于宏操作或初始化与PA4引脚相关的功能 // extern void ADC1_Init(void); // 声明外部函数,用于初始化ADC1 // extern u16 Get_ADC_Average(u8 ch,u8 times); // 声明外部函数,用于获取指定ADC通道的平均值 // extern void Usart1_Printf(char *fmt,...); // 声明外部函数,用于格式化输出到USART1 // extern void UART1_Init(uint32_t baudRate); // 声明外部函数,用于初始化UART1并设置波特率 int main(void) { NVIC_Priority_Group_Set(NVIC_PER2_SUB2_PRIORITYGROUP); // 设置中断优先级分组 // Key_Input_Initialize(KEY1_PORT, KEY1_PIN); // 初始化按键1的输入 SysTick_Delay_Ms(1000); // 延时1000毫秒 Key_Input_Initialize(KEY2_PORT, KEY2_PIN); // 初始化按键2的输入 Key_Input_Initialize(KEY3_PORT, KEY3_PIN); // 初始化按键3的输入 Key_Input_Initialize(KEYWakeup_PORT, KEYWakeup_PIN); // 初始化唤醒按键的输入 BasicTimer6_Init(500-1,32000-1); // 初始化基本定时器6,设置周期和预分频值 EXIT4_Macro_PA4(); // 执行与PA4引脚相关的宏操作或初始化 ADC1_Init(); // 初始化ADC1 /* 初始化Led1~Led3为输出推挽模式 */ LED_Initialize(LED1_GPIO_PORT, LED1_GPIO_PIN | LED2_GPIO_PIN | LED3_GPIO_PIN | KEYWakeup_PIN); /* 关闭Led1~Led3 */ LED_Off(LED1_GPIO_PORT, LED1_GPIO_PIN | LED2_GPIO_PIN | LED3_GPIO_PIN); UART1_Init(115200); // 初始化UART1并设置波特率为115200 // LED_On(LED2_GPIO_PORT, LED2_GPIO_PIN | LED3_GPIO_PIN); // 打开Led2和Led3 /* 延时1秒 */ SysTick_Delay_Ms(1000); // ADC值采集: SysTick_Delay_Ms(1000); // 延时1000毫秒 ADC_Value = Get_ADC_Average(ADC_Channel_15_PB13,5); // 获取ADC通道15(PB13引脚)的5次平均值,并保存到ADC_Value中 // 下面是数码管点亮: LED_Initialize(LED1_GPIO_PORT, LED1_GPIO_PIN | LED2_GPIO_PIN | COM1_GPIO_PIN | SEG3_GPIO_PIN | SEG4_GPIO_PIN | SEG5_GPIO_PIN); // 初始化LED相关的GPIO端口,用于数码管显示 LED_Initialize(COM0_GPIO_PORT, COM0_GPIO_PIN | COM1_GPIO_PIN); // 初始化数码管的公共端GPIO端口 LED_Initialize(SEG0_GPIO_PORT, SEG0_GPIO_PIN | SEG1_GPIO_PIN | SEG2_GPIO_PIN | SEG6_GPIO_PIN); // 初始化数码管的段选端GPIO端口 /* 关闭Led1~Led3以及数码管的段选端 */ LED_Off(LED1_GPIO_PORT, LED1_GPIO_PIN | LED2_GPIO_PIN | COM0_GPIO_PIN | COM1_GPIO_PIN | SEG0_GPIO_PIN | SEG1_GPIO_PIN | SEG2_GPIO_PIN); UART




高工
2024-04-17 22:14 2楼

感谢分享

专家
2024-04-17 22:17 3楼

感谢分享

专家
2024-04-18 00:21 4楼

感谢分享

专家
2024-04-18 08:14 5楼

感谢分享

菜鸟
2024-04-20 15:47 6楼

有要装电梯的找我,www.zblift.com

工程师
2024-04-22 09:58 7楼

学习了。谢谢分享。

助工
2024-04-26 15:12 8楼

那家公司的产品

共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]