質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

2回答

3160閲覧

ラズパイ c言語 ヘッダファイルがない

aiai8976

総合スコア112

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2019/04/16 10:15

編集2019/04/16 13:39

前提・実現したいこと

ラズベリーパイでc言語のファイルを実行しようとしているのですが、そのようなファイルやディレクトリがないというエラーが出てよくわかりません。
おそらくmain.hがそのディレクトリに必要なのかと思うのですが、調べてもmain.hファイルの内容がありません。
ラズパイでc言語を使うには何かセットアップ的なものが必要なのでしょうか。
解決できる方がおられましたらコメントお願いします。

発生している問題・エラーメッセージ

main.c:40:18: fatal error: main.h そのようなファイルやディレクトリはありません

###ソース
入りきらないため、一部割愛しています。
Lidarってゆうセンサのコードです。

main.c

1 2/* Includes ------------------------------------------------------------------*/ 3#include "main.h" 4#include "stm32f1xx_hal.h" 5#include "can.h" 6#include "i2c.h" 7#include "tim.h" 8#include "usart.h" 9#include "gpio.h" 10 11/* USER CODE BEGIN Includes */ 12#include "oled.h" 13#include "sensor.h" 14#include "util.h" 15#include <stdbool.h> 16/* USER CODE END Includes */ 17 18 19 20/* USER CODE END 0 */ 21 22int main(void) 23{ 24 25 /* USER CODE BEGIN 1 */ 26 CAN_FilterConfTypeDef sFilterConfig; 27 uint16_t mag_i = 0; 28 uint8_t mag_exp = 0; 29 uint8_t data_buff[32] = {0}; 30 char str_buff[32] = {0}; 31 /* USER CODE END 1 */ 32 33 /* MCU Configuration----------------------------------------------------------*/ 34 35 /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ 36 HAL_Init(); 37 38 /* USER CODE BEGIN Init */ 39 40 /* USER CODE END Init */ 41 42 /* Configure the system clock */ 43 SystemClock_Config(); 44 45 /* USER CODE BEGIN SysInit */ 46 47 /* USER CODE END SysInit */ 48 49 /* Initialize all configured peripherals */ 50 MX_GPIO_Init(); 51 MX_I2C1_Init(); 52 MX_CAN_Init(); 53 MX_USART1_UART_Init(); 54 MX_USART2_UART_Init(); 55 MX_TIM2_Init(); 56 57 /* USER CODE BEGIN 2 */ 58 hcan.pRxMsg = &RxMessage; 59 hcan.pTxMsg = &TxMessage; 60 //��ʼ��CAN Filter 61 sFilterConfig.FilterIdHigh = 0; 62 sFilterConfig.FilterIdLow = 0; 63 sFilterConfig.FilterMaskIdHigh = 0; 64 sFilterConfig.FilterMaskIdLow = 0; 65 sFilterConfig.FilterFIFOAssignment = CAN_FILTER_FIFO0; 66 sFilterConfig.FilterNumber = 1; 67 sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK; 68 sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT; 69 sFilterConfig.FilterActivation = ENABLE; 70 sFilterConfig.BankNumber = 1; 71 72 if(HAL_OK != HAL_CAN_ConfigFilter(&hcan, &sFilterConfig)) 73 { 74 //uart2_write("init can filter failed\n", 23); 75 } 76 77 78 if(HAL_OK != HAL_CAN_WakeUp(&hcan)) 79 { 80 //uart2_write("init can filter failed\n", 23); 81 } 82 HAL_TIM_Base_Stop_IT(&htim2); 83 HAL_Delay(500);//�ȴ���������ʼ������ 84 OLED_Init(); //???OLED 85 OLED_ShowString(0,0,"CVER:",0);//small front 86 OLED_ShowString(0,1,"DIST:",0); 87 OLED_ShowString(0,2,"MAGN:",0); 88 //OLED_ShowString(0,3,"TVER:",0); 89 90 //��ȡCAN ������ID�� 91 hcan.pTxMsg->StdId = 0x731 & 0x7ff;// 92 hcan.pTxMsg->IDE = CAN_ID_STD;// 93 hcan.pTxMsg->RTR = CAN_RTR_DATA; 94 hcan.pTxMsg->DLC = 8; 95 hcan.pTxMsg->Data[0] = 0xf0;; 96 hcan.pTxMsg->Data[1] = 0xff; 97 hcan.pTxMsg->Data[2] = 0x00; 98 hcan.pTxMsg->Data[3] = 0xb0; 99 HAL_CAN_Transmit(&hcan, 100); 100 if(HAL_OK == HAL_CAN_Receive(&hcan, CAN_FIFO0, 300)) 101 { 102 sensorID_CAN = hcan.pRxMsg->Data[0] & 0xf0;//������ID�� 103 //����CAN�жϽ������� 104 if(HAL_OK != HAL_CAN_Receive_IT(&hcan, CAN_FIFO0)) 105 { 106 //uart2_write("init can filter failed\n", 23); 107 } 108 //CAN�̼��汾 109 hcan.pTxMsg->StdId = 0x731 & 0x7ff;// 110 hcan.pTxMsg->IDE = CAN_ID_STD;// 111 hcan.pTxMsg->RTR = CAN_RTR_DATA; 112 hcan.pTxMsg->DLC = 8; 113 hcan.pTxMsg->Data[0] = sensorID_CAN | 0x0;; 114 hcan.pTxMsg->Data[1] = 0xfe; 115 HAL_CAN_Transmit(&hcan, 100); 116 117 //ToF�̼���Ϣ 118 hcan.pTxMsg->StdId = 0x731 & 0x7ff;// 119 hcan.pTxMsg->IDE = CAN_ID_STD;// 120 hcan.pTxMsg->RTR = CAN_RTR_DATA; 121 hcan.pTxMsg->DLC = 8; 122 hcan.pTxMsg->Data[0] = sensorID_CAN | 0x0;; 123 hcan.pTxMsg->Data[1] = 0x2e; 124 HAL_CAN_Transmit(&hcan, 100); 125 126 //Τ��CANЭ����Ҫ�����ض������????��������������������� 127 hcan.pTxMsg->StdId = 0x731 & 0x7ff;// 128 hcan.pTxMsg->IDE = CAN_ID_STD;// 129 hcan.pTxMsg->RTR = CAN_RTR_DATA; 130 hcan.pTxMsg->DLC = 8; 131 hcan.pTxMsg->Data[0] = sensorID_CAN | 0x0;; 132 hcan.pTxMsg->Data[1] = 0xf7; 133 hcan.pTxMsg->Data[2] = 0xf5; 134 hcan.pTxMsg->Data[3] = 0x1; 135 HAL_CAN_Transmit(&hcan, 100); 136 137 138 139 140 //������������ģʽ 141 hcan.pTxMsg->StdId = 0x731 & 0x7ff;// 142 hcan.pTxMsg->IDE = CAN_ID_STD;// 143 hcan.pTxMsg->RTR = CAN_RTR_DATA; 144 hcan.pTxMsg->DLC = 8; 145 hcan.pTxMsg->Data[0] = sensorID_CAN | 0x0; 146 hcan.pTxMsg->Data[1] = 0x24; 147 HAL_CAN_Transmit(&hcan, 100); 148 149 } 150 else 151 { 152 //����CAN�жϽ������� 153 if(HAL_OK != HAL_CAN_Receive_IT(&hcan, CAN_FIFO0)) 154 { 155 //uart2_write("init can filter failed\n", 23); 156 } 157 } 158 159 160 161 //����UART1��UART2�Ĵ�������������ģʽ 162 continuous_Stop(USE_UART1); 163 uart1_read(buff, 8, 200);//���ܻ���������Ϣ(Hypersen)��Ҫ�˵� 164 if(sensor_get_DeviceInfo(buff, USE_UART1) == 1) 165 { 166 sprintf(str_buff, "20%d-%d-%d V%d.%d", buff[17], buff[18], buff[19], buff[20], buff[21]); 167 OLED_ShowString(0,3, (uint8_t *)str_buff,0); 168 } 169 sensor_continuous_start(USE_UART1); 170 continuous_Stop(USE_UART2); 171 uart2_read(buff, 8, 200); //���ܻ���������Ϣ(Hypersen)��Ҫ�˵� 172 if(sensor_get_DeviceInfo(buff, USE_UART2) == 1) 173 { 174 sprintf(str_buff, "20%d-%d-%d V%d.%d", buff[17], buff[18], buff[19], buff[20], buff[21]); 175 OLED_ShowString(0,3, (uint8_t *)str_buff,0); 176 } 177 sensor_continuous_start(USE_UART2); 178 HAL_TIM_Base_Start_IT(&htim2); 179 180 181 /* USER CODE END 2 */ 182 183 /* Infinite loop */ 184 /* USER CODE BEGIN WHILE */ 185 while (1) 186 { 187 /* USER CODE END WHILE */ 188 189 /* USER CODE BEGIN 3 */ 190 uart2_rx_done = false; 191 HAL_UART_Receive_IT(&huart2 ,buff, 2); 192 while(!uart2_rx_done); 193 if(buff[0] == 0x0a && buff[1] == 0x0d) 194 { 195 HAL_NVIC_DisableIRQ(TIM2_IRQn); 196 if(HAL_OK == HAL_UART_Receive(&huart2, buff+2, 0x0d, 10)) 197 { 198 if(packet_parser(buff, data_buff) == 1) 199 { 200 dist = (data_buff[3]<<8)+data_buff[4]; 201 mag_i = (data_buff[5] <<8) + data_buff[6]; 202 mag_exp = data_buff[7]; 203 mag = ((uint32_t)mag_i)<<(mag_exp); 204 ambient = data_buff[8]; 205 dev[0] = 'U'; 206 dev[1] = 'A'; 207 dev[2] = 'R'; 208 dev[3] = 'T'; 209 dev[4] = '2'; 210 dev[5] = 0; 211 } 212 } 213 HAL_NVIC_EnableIRQ(TIM2_IRQn); 214 } 215 buff[0] = 0; 216 buff[1] = 0; 217 } 218 /* USER CODE END 3 */ 219 220} 221 222 223

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cateye

2019/04/16 10:41 編集

>c言語のファイルを実行しようとしている・・・“コンパイルしようとしている”の間違いでは? 実行ファイルにヘッダファイルは不要です。ソースを貼ってください。
aiai8976

2019/04/16 14:04

ソース貼りましたので確認お願いします。
guest

回答2

0

ryota8976さん、

このファイルはどのような環境で 使われる/使われていた ものでしょうか?
このCファイルは、ラズパイで使えるものではありませんね。

#include "stm32f1xx_hal.h"とありますが、STM32F1シリーズ向けのHAL環境で使用できるもので、ラズパイでは使用できません。
おそらく、STM32CubeMXという開発ツールで、生成されたスケルトンコードから、開発されたっぽいですね。
(コード生成時にmain.h以外にもいくつかファイルが作られているはずです。)

使用する・できる環境を確認してみてください。

投稿2019/04/16 15:52

編集2019/04/16 15:55
mt08

総合スコア1825

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

main.h ってのはなにをするヘッダファイルなんでしょうか。
自分で定義すべきファイルじゃないんでしょうか。

投稿2019/04/16 12:43

y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2019/04/16 13:22 編集

雰囲気からして"自前で書く"か"そんなinclude不要"かでしょなー なんにせよコード見せて。
aiai8976

2019/04/16 14:04

ソース貼りましたので確認お願いします。
y_waiwai

2019/04/16 23:34

そのコードはどこから持ってきたもんなんでしょう。 あなたが書いたもんじゃないでしょね?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問