Lily李

  • 2025-02-08
  • 回复了主题帖: 读书入围名单:《Python编程:从入门到实践(第3版)》

    个人信息无误,确认可以完成阅读分享计划

  • 回复了主题帖: 【新年花灯】基于点阵显示板的灵蛇献瑞

    秦天qintian0303 发表于 2025-2-7 17:26 又是一种新年花灯,大家手里真是各种存货啊 嗯,该去继续积累了。

  • 2025-02-07
  • 发表了主题帖: 【新年花灯】基于点阵显示板的灵蛇献瑞

    本帖最后由 Lily李 于 2025-2-8 12:57 编辑 新年点灯咱是认真的,论数量它可是16*16*4个,论移动它是整体搬迁呀! [localvideo]c2245b76b97484a47d5523325b47f188[/localvideo]    

  • 回复了主题帖: 【N32A455 车规MCU开发板测评】以串口发送数据

    Jacktang 发表于 2025-2-7 07:50 直接使用调试用串口是比较方便 的确是这样

  • 2025-02-06
  • 发表了主题帖: 【N32A455 车规MCU开发板测评】以串口发送数据

    在通常的情况下,对采集的数据需上传到上位机以供处理。 为了测试的方便,直接使用调试用串口,见图1所示。   图1 调试口   在使用时,需短接J2的引脚7和引脚8相连,引脚9和引脚10相连。   对串口1的配置函数为: void USART1_Config(void) { GPIO_InitType GPIO_InitStructure; USART_InitType USART_InitStructure; RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_USART1 | RCC_APB2_PERIPH_GPIOA, ENABLE); /* USART1 GPIO config */ /* Configure USART1 Tx (PA.09) as alternate function push-pull */ GPIO_InitStructure.Pin = GPIO_PIN_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitPeripheral(GPIOA, &GPIO_InitStructure); /* Configure USART1 Rx (PA.10) as input floating */ GPIO_InitStructure.Pin = GPIO_PIN_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitPeripheral(GPIOA, &GPIO_InitStructure); /* USART1 work mode*/ USART_InitStructure.BaudRate = 115200; USART_InitStructure.WordLength = USART_WL_8B; USART_InitStructure.StopBits = USART_STPB_1; USART_InitStructure.Parity = USART_PE_NO ; USART_InitStructure.HardwareFlowControl = USART_HFCTRL_NONE; USART_InitStructure.Mode = USART_MODE_RX | USART_MODE_TX; USART_Init(USART1, &USART_InitStructure); USART_Enable(USART1, ENABLE); } 为支持打印输出功能所配置的函数为: int fputc(int ch, FILE* f) { USART_SendData(USART1, (uint8_t)ch); while (USART_GetFlagStatus(USART1, USART_FLAG_TXDE) == RESET) ; return (ch); } 在显示功能的基础上,实现数据采集与发送功能的主程序为: int main(void) { uint16_t V; LCD_config(); RCC_Configuration(); GPIO_Configuration(); ADC_Initial(ADC1); LCD_LED_High(); TFT_Init(); LCD_Clear(WHITE); BACK_COLOR=WHITE; POINT_COLOR=RED; LCD_ShowString(30,30,"Channel_06:"); LCD_ShowString(30,60,"Channel_06: mV"); USART1_Config(); while (1) { ADC1ConvertedValue[0]=ADC_GetData(ADC1,ADC1_Channel_06_PC0); V=ADC1ConvertedValue[0]; LCD_ShowNum(126,30,V,4); V=V*3300/4096; LCD_ShowNum(126,60,V,4); printf("\r\n Temperature = %d mV \r\n",V); Delay(0X8FFFFF); } } 经程序的编译与下载,其串口发送功能的测试效果如图2所示。   图2 测试效果  

  • 2025-02-05
  • 回复了主题帖: 【N32A455 车规MCU开发板测评】点亮LCD屏

    emma2015 发表于 2025-2-5 10:52 为了增强十足的灵活性,就以GPIO口模拟的方式来实现。 是呀,GPIO口随处是。

  • 回复了主题帖: 【新年花灯】基于WS2812的彩蛇献祥瑞

    majip 发表于 2025-2-4 20:58 不错,学习了,有时间也做一个玩玩,公司同事有做一个光带,感觉很有趣 的确比较好玩,一般长一点的效果好些。

  • 回复了主题帖: 【N32A455 车规MCU开发板测评】RTC电子时钟的实现

    emma2015 发表于 2025-2-4 16:34 博主很用心,每个步骤都很详细,学到了很多东西,感谢你的分享 多谢支持,这是继续进行的动力。

  • 2025-02-04
  • 回复了主题帖: 【N32A455 车规MCU开发板测评】RTC电子时钟的实现

    xinlian55 发表于 2025-2-3 22:00 博主很用心,每个步骤都很详细,学到了很多东西,感谢你的分享 多谢你的支持和鼓励,后面会进行努力。

  • 2025-02-03
  • 发表了主题帖: 【N32A455 车规MCU开发板测评】RTC电子时钟的实现

    在N32A455片内配有RTC计时器,可以轻松实现电子时钟功能。通过与LCD屏相配合就可观察到计时效果。 此外,由于板载了电池座,见图1所示,它可在开发板断电的情况下,依然可以维持RTC计时。 图1 后备电池   为进行时间值的显示,配置了相应的数据显示函数,其内容为: void OLED_ShowNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len) { uint8_t t,temp; uint8_t enshow=0; for(t=0;t<len;t++) { temp=(num/oled_pow(10,len-t-1))%10; if(enshow==0&&t<(len-1)) { if(temp==0) { LCD_set_XY(x+8*t,y); LCD_write_char(' '); continue; } else { enshow=1; } } LCD_set_XY(x+8*t,y); LCD_write_char(temp+'0'); } }   显示时间值的函数为: void RTC_TimeShow(void) { RTC_GetTime(RTC_FORMAT_BIN, &RTC_TimeStructure); (void)RTC->DATE; OLED_ShowNum(16,4,RTC_TimeStructure.Hours,2); OLED_ShowNum(40,4,RTC_TimeStructure.Minutes,2); OLED_ShowNum(64,4,RTC_TimeStructure.Seconds,2); }   在中断处理中显示日期与时间的函数为: void EXTI9_5_IRQHandler(void) { if (EXTI_GetITStatus(EXTI_LINE7) != RESET) { RTC_DateShow(); RTC_TimeShow(); EXTI_ClrITPendBit(EXTI_LINE7); } }   测试电子时钟功能的主程序为: int main(void) { lCD_config(); LCD_init(); LCD_clear(); LCD_write_english_string(16,0,"N32A455"); LCD_write_english_string(16,2,"NOKIA_5110"); LCD_write_english_string(16,4," : :"); log_init(); log_info("RTC Init"); RTC_DateAndTimeDefaultVale(); RCC_EnableAPB1PeriphClk(RCC_APB1_PERIPH_PWR | RCC_APB1_PERIPH_BKP, ENABLE); PWR_BackupAccessEnable(ENABLE); if (USER_WRITE_BKP_DAT1_DATA != BKP_ReadBkpData(BKP_DAT1) ) { if(SUCCESS==RTC_CLKSourceConfig(RTC_CLK_SRC_TYPE_LSE, true, false)) { RTC_PrescalerConfig(); log_info("\r\n RTC configured...."); RTC_DateRegulate(); RTC_TimeRegulate(); BKP_WriteBkpData(BKP_DAT1, USER_WRITE_BKP_DAT1_DATA); //log_info("\r\n RTC Init Success\r\n"); } else { //log_info("\r\n RTC Init Faile\r\n"); } } EXTI_PA7_Configuration(); EXTI_ClrITPendBit(EXTI_LINE7); RTC_ConfigCalibOutput(RTC_CALIB_OUTPUT_1HZ); RTC_ConfigOutputType(RTC_OUTPUT_PUSHPULL); RTC_EnableCalibOutput(ENABLE); while (1); }   经程序的编译与下载,其显示效果如图2和图3所示,说明显示正常。 图2 显示效果1   图3 显示效果2  

  • 回复了主题帖: 【N32A455 车规MCU开发板测评】点亮LCD屏

    Jacktang 发表于 2025-2-3 10:07 是的配个显示器件就比较完美啦 感谢您的支持和鼓励!

  • 2025-02-02
  • 发表了主题帖: 【新年花灯】基于WS2812的彩蛇献祥瑞

    [localvideo]6b6d05253cb86835d50956a874c06445[/localvideo] 时光似流水   [localvideo]8ebaed97f1b24be88967e250bd868cd7[/localvideo] 彩蛇献祥瑞

  • 发表了主题帖: 【N32A455 车规MCU开发板测评】点亮LCD屏

    尽管N32A455开发板配了相应的外设资源,但是没有显示器件还是稍感不足,那就自己动手给它配上一个能显示文字信息的LCD屏吧。 为了增强十足的灵活性,就以GPIO口模拟的方式来实现。 由于该开发板没有设置Arduino接口,那就以显示屏的引脚顺序来分配GPIO引脚,见图1所示。 图1 所用接口   具体的连接关系为: SCLK----PE2 SDIN----PE3 RST ----PE4 DC ----PE5 CS ----PE6 BLK----PC13 输出高低电平的语句定义为: #define LCD_SCLK_Set GPIOE->PBSC = GPIO_PIN_2 #define LCD_SCLK_Clr GPIOE->PBC = GPIO_PIN_2 #define LCD_SDIN_Set GPIOE->PBSC = GPIO_PIN_3 #define LCD_SDIN_Clr GPIOE->PBC = GPIO_PIN_3 #define LCD_RST_Set GPIOE->PBSC = GPIO_PIN_4 #define LCD_RST_Clr GPIOE->PBC = GPIO_PIN_4 #define LCD_DC_Set GPIOE->PBSC = GPIO_PIN_5 #define LCD_DC_Clr GPIOE->PBC = GPIO_PIN_5 #define LCD_CS_Set GPIOE->PBSC = GPIO_PIN_6 #define LCD_CS_Clr GPIOE->PBC = GPIO_PIN_6 #define LCD_BLK_Set GPIOC->PBSC = GPIO_PIN_13 #define LCD_BLK_Clr GPIOC->PBC = GPIO_PIN_13 进行短时延时的函数为: void Delay(uint32_t count) { for (; count > 0; count--); } 模拟SPI方式发送字节数据的函数为: static void LCD_write_byte(unsigned char dat, unsigned char command) { unsigned char i; LCD_CS_Clr; if (command == 0) LCD_DC_Clr; else LCD_DC_Set; for(i=0;i<8;i++) { if(dat&0x80) LCD_SDIN_Set; else LCD_SDIN_Clr; LCD_SCLK_Clr; dat<<=1; LCD_SCLK_Set; } LCD_CS_Set; }   对所用引脚的配置函数为: void lCD_config(void) { GPIO_InitType GPIO_InitStructure; RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOE, ENABLE); GPIO_InitStructure.Pin=GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitPeripheral(GPIOE, &GPIO_InitStructure); RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOC, ENABLE); GPIO_InitStructure.Pin = GPIO_PIN_13; GPIO_InitPeripheral(GPIOC, &GPIO_InitStructure); }   该显示屏的初始化函数为: static void LCD_init(void) { LCD_RST_Clr; Delay(1); LCD_RST_Set; LCD_CS_Clr; Delay(1); LCD_CS_Set; Delay(1); LCD_write_byte(0x21, 0); LCD_write_byte(0xc8, 0); LCD_write_byte(0x06, 0); LCD_write_byte(0x13, 0); LCD_write_byte(0x20, 0); LCD_clear(); LCD_write_byte(0x0c, 0); LCD_CS_Clr; LCD_BLK_Set; }   该显示屏的清屏函数为: static void LCD_clear(void) { unsigned int i; LCD_write_byte(0x0c, 0); LCD_write_byte(0x80, 0); for (i=0; i<504; i++) LCD_write_byte(0, 1); }   实现字符串显示的函数为: static void LCD_write_english_string(unsigned char X,unsigned char Y,char *s) { LCD_set_XY(X,Y); while (*s) { LCD_write_char(*s); s++; } }   实现显示测试的主程序为: int main(void) { lCD_config(); LCD_init(); LCD_clear(); LCD_write_english_string(16,0,"N32A455"); LCD_write_english_string(16,2,"NOKIA_5110"); LCD_write_english_string(16,4,"2025-1-22"); while (1); }   经程序的编译与下载,其显示效果如图2所示,说明显示正常。 图2 显示效果  

  • 2025-01-23
  • 发表了主题帖: 【N32A455 车规MCU开发板测评】板子的体检

    感谢在这次“年终回炉:FPGA、AI、高性能MCU、书籍等65个测品邀你来~”的活动中得到了这次良好的机会,作为一枚新手这是我步入一个新的学习大门。 我申请到的是N32A455 车规MCU开发板,见图1所示。随其一起配备的还有一条蓝色的USB数据线,贴心!   图1 开发板   图2 USB数据线   毕竟小板子一路风尘,快递小哥也忙,还是先为它做个体检为好,上电后,其效果如图3所示,只有电源指示灯D11被点亮,其电路如图4所示。   图3 上电效果     图4 电源指示灯电路   此外,在观察设备管理器时会发现有虚拟串口的串行,经测试该串口并无如何内容输出,见图5所示。   图5 串口测试   用于为开发板配置的开发与测试的资源很充分,因此在搭建开发环境时十分轻松,完全不用去东寻西找。 为了测试开发环境和程序的下载功能。 先打算测一下点灯程序,但看过程序后发现比较凌乱,就自己写了一个,其内容为: int main(void) { // LED1---red // LED2---green // LED3---blue LedInit(PORT_GROUP2,LED1_PIN); LedInit(PORT_GROUP2,LED2_PIN); LedInit(PORT_GROUP1, GPIO_PIN_10); LedOn(PORT_GROUP2, LED1_PIN); LedOn(PORT_GROUP2 LED2_PIN); LedOn(PORT_GROUP1, GPIO_PIN_10); while (1); } 经程序的编译与下载,3个LED灯均可点亮,说明情况正常。   接下来是测试Printf打印输出功能,其测试程序为: int main(void) { RCC_Configuration(); GPIO_Configuration(); USART_InitStructure.BaudRate = 115200; USART_InitStructure.WordLength = USART_WL_8B; USART_InitStructure.StopBits = USART_STPB_1; USART_InitStructure.Parity = USART_PE_NO; USART_InitStructure.HardwareFlowControl = USART_HFCTRL_NONE; USART_InitStructure.Mode = USART_MODE_RX | USART_MODE_TX; USART_Init(USARTx, &USART_InitStructure); USART_Enable(USARTx, ENABLE); printf("\n\rUSART Printf Example: retarget the C library printf function to the USART\n\r"); while (1) { } } 经程序的编译与下载,在短接J2的引脚7和引脚8的情况下,其测试结果如图7所示,说明正常。     图6 引脚连接     图7 测试结果 至此,基本的测试就可以告一段落了,体检情况基本正常。  

  • 2025-01-19
  • 回复了主题帖: 【测评入围名单(最后1批)】年终回炉:FPGA、AI、高性能MCU、书籍等65个测品邀你来~

    个人信息无误,确认可以完成测评计划

最近访客

  • nmg

    昨天 13:58

< 1/1 >

统计信息

已有4人来访过

  • 芯积分:45
  • 好友:--
  • 主题:6
  • 回复:9

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言