10 08 26 去CX

今天中午ZCG要我去CX,结果白天一堆的事情要去处理,确认问题拖了很长时间,下午刚出YSP的门口,就碰到了一台YY的的士,很好运气,用了90元就把我带到了CX,才一个多小时,晚上在BYG调效果,整到了3点钟!

 

读在今天:***

想在今天:必要坚持,连续三天3点!

48 70 93 33 68 69 70 74 31 74 88 16 11 6631 6631 6631 6631 6631 39 91 73 25 47 10-08 12:42:19.256 10-08 12:42:19.256 10-08 12:42:19.257 10-08 12:42:19.258 10-08 12:42:19.258 10-08 12:42:19.262 10-08 12:42:19.262 10-08 12:42:19.262 10-08 12:42:19.263 10-08 12:42:19.922 10-08 12:42:21.195 10-08 12:42:22.519 10-08 12:42:23.868 10-08 12:42:25.224 10-08 12:42:26.588 10-08 12:42:27.875 10-08 12:42:29.227 10-08 12:42:30.580 46 40 41 42 43 44 45 10-08 12:53:57.548 10-08 12:53:57.548 10-08 12:53:57.548 10-08 12:53:57.549 10-08 12:53:57.549 10-08 12:53:57.549 03 04 05 10-08 12:54:06.729 10-08 12:54:06.729 6631 7282 I GY_MDIC_ReUseData3: recycler: remove used=253 poolNum=21 6631 7282 I GY_MDIC_2RtpWriter0: writeMuxData: 79982740 us naluType=mulEnd len=9166 key=0 timeUs=5666471704 count=2401 7282 I GY_MDIC_ReUseData3: recycler: remove used=253 poolNum=21 6631 7282 I GY_MDIC_ReUseData3: recycler: remove used=253 poolNum=21 6631 7282 I GY_MDIC_ReUseData3: recycler: remove used=253 poolNum=21 6631 7282 I GY_MDIC_ReUseData3: recycler: remove used=253 poolNum=21 6631 7282 I GY_MDIC_2RtpWriter0: writeMuxData: 81271429 us naluType=mulEnd len=19746 key=0 timeUs=5667760393 count=2441 7282 I GY_MDIC_ReUseData3: recycler: remove used=253 poolNum=21 6631 7282 I GY_MDIC_ReUseData3: recycler: remove used=253 poolNum=21 6631 7282 I GY_MDIC_2RtpWriter0: writeMuxData: 82676049 us naluType=mulEnd len=11043 key=0 timeUs=5669165013 count=2481 7282 I GY_MDIC_2RtpWriter0: writeMuxData: 83948932 us naluType=mulEnd len=12080 key=0 timeUs=5670437896 count=2521 6631 7282 I GY_MDIC_2RtpWriter0: writeMuxData: 85273690 us naluType=mulEnd len=13234 key=0 timeUs=5671762654 count=2561 7282 I GY_MDIC_2RtpWriter0: writeMuxData: 86616595 us naluType=mulEnd len=11912 key=0 timeUs=5673105559 count=2601 7282 I GY_MDIC_2RtpWriter0: writeMuxData: 87978965 us naluType=mulEnd len=11601 key=0 timeUs=5674467929 count=2641 6631 7282 I GY_MDIC_2RtpWriter0: writeMuxData: 89342638 us naluType=mulEnd len=12377 key=0 timeUs=5675831602 count=2681 6631 7282 I GY_MDIC_2RtpWriter0: writeMuxData: 90630128 us naluType=mulEnd len=11134 key=0 timeUs=5677119092 count=2721 6631 7282 I GY_MDIC_2RtpWriter0: writeMuxData: 91981792 us naluType=mulEnd len=10162 key=0 timeUs=5678470756 count=2761 6631 7282 I GY_MDIC_2RtpWriter0: writeMuxData: 93334719 us naluType=mulEnd len=9957 key=0 timeUs=5679823683 count=2801 10-08 12:42:31.857 6631 7282 I GY_MDIC_2RtpWriter0: writeMuxData: 94611412 us naluType=mulEnd len=8653 key=0 timeUs=5681100376 count=2841 aplog@20251008_12-53-14-861_pc_11 (1980-01-01 08:00:00 20.5M) 6631 7282 I GY_MDIC_2RtpWriter0: writeMuxData rawTimeout: currentUs=6366792285 timeOutUs=recordRawStartUs=240000000 6631 7282 E GY_MDI_RtpJniWriter: onNativeEvent: Event{code=12003, name=on_record_time_out_stop, arg1=0, arg2=0, } 6631 7282 E GY_MDI_2RtpWriter: event: Event{code=12003, name=on_record_time_out_stop, arg1=0, arg2=0, } 6631 7282 I DVR_NoStreamCameraManager: 3 : eventBean = Event{code=12003, name=on_record_time_out_stop, arg1=0, arg2=0, } 6631 7282 I DVR_CameraHelper: onEventChange eventBean = Event{code=12003, name=on_record_time_out_stop, arg1=0, arg2=0, } 6631 7282 I GY_MDIC_2RtpWriter0: stopRecordImpl start: path=/storage/usb2.4F6B-7E85/DVR-DCIM/LOOP/20251008_124058/20251008_124058_8659_right_temp.mp4 aplog@20251008_12-53-59-478_pc 11 (1980-01-01 08:00:00 20.5M) 10-08 12:54:06.728 6631 7282 I MPEG4Writer: Adjust the moov start time from 0 us -> -151 us 6631 7282 I MPEG4Writer: The mp4 file will not be streamable. 6631 7282 I MPEG4Writer: MOOV atom was written to the file
10-10
### STM32 HAL库 AHT10 温湿度传感器 OLED 显示屏 示例代码 #### 软件I2C与硬件I2C的区别 在嵌入式开发中,“软件I2C”指的是利用通用输入/输出(GPIO)模拟实现I2C协议的功能,而“硬件I2C”则是指使用微控制器内部集成的专用I2C接口来处理数据传输。前者灵活性较高但效率较低;后者则具有更高的性能和更低的CPU占用率[^1]。 #### 初始化配置 为了使能AHT10并获取其测量结果,在程序启动阶段需调用初始化函数`AHT10_Init()`以发送特定指令给设备完成校准过程。此操作仅需执行一次即可长期有效直至断电重启为止。 ```c void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_I2C1_Init(void); int main(void){ HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_I2C1_Init(); // Initialize the sensor and display here. AHT10_Init(); while (true){ ahtData_t data; AHT10_Read_predata(&data); char buffer[50]; sprintf(buffer, "Temp:%.2f C\nHumidity:%.2f %%", data.temp, data.humi); SSD1306_Clear(); SSD1306_DisplayString(0, 0, buffer); HAL_Delay(1000); } } ``` 上述代码展示了主循环内的基本框架,其中包含了对温湿度数值周期性的读取以及格式化字符串准备用于后续显示的工作流程。 #### 数据采集部分 针对AHT10的具体交互逻辑如下所示: ```c #include "stm32f1xx_hal.h" #include "i2c.h" #define AHT10_ADDRESS_WRITE 0x70 << 1 #define AHT10_ADDRESS_READ ((0x70 << 1)|1) // ... other definitions as per your application needs ... void AHT10_Init(){ uint8_t cmd[] = {0xE1, 0x08, 0x00}; HAL_I2C_Master_Transmit(&hi2c1,AHT10_ADDRESS_WRITE,sizeof(cmd),cmd,HAL_MAX_DELAY); } void AHT10_Read_predata(ahtData_t *ahtData){ uint8_t cmd[] = {0xAC, 0x33, 0x00}; HAL_I2C_Master_Transmit(&hi2c1,AHT10_ADDRESS_WRITE,sizeof(cmd),cmd,HAL_MAX_DELAY); HAL_Delay(80); // Wait for conversion to complete uint8_t buf[6]; HAL_I2C_Master_Receive(&hi2c1,AHT10_ADDRESS_READ,sizeof(buf),buf,HAL_MAX_DELAY); int32_t raw_humidity = (((uint32_t)(buf[1])<<12)|(buf[2]<<4)|(buf[3]>>4)); int32_t raw_temperature = ((((uint32_t)(buf[3]&0xF))<<16)|(buf[4]<<8)|buf[5]); ahtData->humi = (float)((raw_humidity*100)/1048576.0); ahtData->temp = (float)(((raw_temperature*200)-50000)/1048576.0); } ``` 这段代码实现了向AHT10发出触发测量命令,并等待一段时间让器件完成实际采样工作之后再接收返回的数据包解析成最终可理解的形式——即摄氏度下的温度值百分比表示法下的相对湿度水平。 #### OLED屏幕展示环节 对于SSD1306驱动的小型图形液晶显示器而言,通常会借助第三方提供的现成库文件简化编程难度。下面给出了一种可能的方式来进行文字渲染: ```c #include "ssd1306.h" void setup_display(I2C_HandleTypeDef *hi2cx){ ssd1306_init(hi2cx); ssd1306_clear_screen(); } void update_display(const char *text){ ssd1306_draw_string(text,strlen((char*)text),0,0,FONT_SIZE_16X26); ssd1306_update_screen(); } ``` 这里假设已经存在了一个名为`ssd1306.c/h` 的外部资源负责底层绘图引擎的支持,因此只需关注高层API层面的操作方法即可满足需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值