您好,我是 c 编程和嵌入式设计的新手。我知道有一种正确的方法可以完成我想要完成的事情。我似乎以错误的方式做这件事,即使我的代码仍然“有效”
我在几行代码上收到警告。此代码段的第 51 和 53 行。
警告是“传递‘SSD1306_Puts’参数 1 的指针目标的符号不同 [-Wpointer-sign]
我不能包含我所有的代码,因为它说我的帖子太长所以我试图包含所有相关信息。
我
- /* USER CODE BEGIN PTD */
- /* Buffers used to display time and Date */
- uint8_t aShowTime[50] = {0};
- uint8_t aShowDate[50] = {0};
- /**
- * @brief Display the current time and date.
- * @param showtime : pointer to buffer
- * @param showdate : pointer to buffer
- * @retval None
- */
- static void RTC_CalendarUpdate(uint8_t *showtime, uint8_t *showdate)
- {
- RTC_DateTypeDef sdatestructureget;
- RTC_TimeTypeDef stimestructureget;
- /* Get the RTC current Time */
- if (HAL_RTC_GetTime(&hrtc, &stimestructureget, RTC_FORMAT_BIN) != HAL_OK)
- {
- /* HAL Error */
- Error_Handler();
- }
- /* Get the RTC current Date */
- if (HAL_RTC_GetDate(&hrtc, &sdatestructureget, RTC_FORMAT_BIN) != HAL_OK)
- {
- /* HAL Error */
- Error_Handler();
- }
- /* Display time Format : hh:mm:ss */
- sprintf((char *)showtime, "%02d:%02d:%02d", stimestructureget.Hours, stimestructureget.Minutes, stimestructureget.Seconds);
- /* Display date Format : mm-dd-yy */
- sprintf((char *)showdate, "%02d-%02d-%02d", sdatestructureget.Month, sdatestructureget.Date, 2000 + sdatestructureget.Year);
- }
- void display_time (void)
- {
- RTC_CalendarUpdate(aShowTime, aShowDate);
- SSD1306_GotoXY(20, 0);
- SSD1306_Puts(aShowTime, &Font_11x18, 1);
- SSD1306_GotoXY(10, 30);
- SSD1306_Puts(aShowDate, &Font_11x18, 1);
- SSD1306_UpdateScreen();
- }