rk3588's 小破站 - 2026年5月
type: channel
link: http://8.162.1.103/index.php/2026/05/
description: 今天要写些什么？
items: 蓝桥国赛程序设计补充
items: 超超超级大一只

蓝桥国赛程序设计补充
type: item
date: 2026-05-31T11:56:00+08:00
description: 多路ADC在CubeMX里配置Number Of Conversion为通道数，给几个rank都配置自己的通道，把sampling time改成最大640.5 cyclesmyadc.cdouble v1,v2; uint v1_value,v2_value; void getADC(ADC_HandleTypeDef *hadc){ HAL_ADC_Start(hadc); HAL_ADC_PollForConversion(hadc,50);//阻塞等待rank1转换完成才能继续 v1_value=HAL_ADC_GetValue(hadc); v1=v1_value*3.3/4095.0; HAL_ADC_PollForConversion(hadc,50); v2_value=HAL_ADC_GetValue(hadc); v2=v2_value*3.3/4095.0; }ADC校准在ADC初始化之后，第一次采样之前，只执行一次即可，可以解决采集到最大电压只有3.25的问题HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED);ADC过采样什么时候需要呢，一般开完校准大部分情况就够用了，如果12位精度满足不了，可以尝试一下过采样提升精度到16位配置连续256次采样，右移4位取平均，得到的是最大4096*16的整数，只要在软件里/16就可以把有效位数提升至16位然后采样时加一句等待转换完成HAL_ADC_Start(&hadc2); HAL_ADC_PollForConversion(&hadc2,10);//10表示等待时间，要大于转换时间 v=HAL_ADC_GetValue(&hadc2)*3.3/16.0/4065.0; HAL_ADC_Stop(&hadc2);//也可以不加显示反转需要时重新initlcd.cvoid REG_932X_Init_FB(void) { LCD_WriteReg(R227, 0x3008); // Set internal timing LCD_WriteReg(R231, 0x0012); // Set internal timing LCD_WriteReg(R239, 0x1231); // Set internal timing LCD_WriteReg(R1, 0x0100); // 反转就是这个 //0x0100 .... LCD_WriteReg(R96, 0xA700); // 这个就是反转 0xA700 ... } void LCD_Init_FB(void) { LCD_CtrlLinesConfig(); dummy = LCD_ReadReg(0); if(dummy == 0x8230) { REG_8230_Init(); } else { REG_932X_Init_FB(); } dummy = LCD_ReadReg(0); }串口interrupt.cchar rxdata[20]; uint8_t rx_po,rxdat; void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){ rxdata[rx_po++]=rxdat; HAL_UART_Receive_IT(huart,&rxdat,1); }logic.cextern uint8_t rx_po,rxdat; extern char rxdata[]; if(rx_po!=0){ int temp=rx_po; HAL_Delay(1); if(temp==rx_po){ //解析代码 ... if(strncmp(rxdata,"PPP",3)==0){ //strncmp检查到字符串相等返回0，别忘了==0 sscanf(rxdata,"PPP%3d",rxnum);//匹配PPP后的三位数字 } else{ sprintf(text,"error\r\n"); HAL_UART_Transmit(&huart1,(u8*)text,strlen(text),50) } rx_po=0; memset(rxdata,0,20); } }RTC时钟cubemx里找到RTC直接Activate Clock Source和Activate Calendar，下面可以设置初始时间初始日期，Data Format设置二进制格式，根据需要开启内部闹钟和使能中断RTC_TimeTypeDef sTime; RTC_DateTypeDef sDate;//声明结构体 //需要调用时间时，从硬件获取时间 HAL_RTC_GetTime(&hrtc,&sTime,RTC_FORMAT_BIN);…

超超超级大一只
type: item
date: 2026-05-11T18:36:00+08:00
description: 起因工作休憩 摸鱼 时候偶然看到这一只桃，oh我的朋友你知道的，这五年来，我一直是坚定不移的胡桃厨啊。经过loading结果超级大一只，40cm+宿雪桃红