{"id":13741461,"url":"https://github.com/adamczykpiotr/STM32duino_CAN_Library","last_synced_at":"2025-05-08T21:33:53.377Z","repository":{"id":142972199,"uuid":"374733160","full_name":"adamczykpiotr/STM32duino_CAN_Library","owner":"adamczykpiotr","description":"CanBus library for STM32F103 running on STM32duino","archived":false,"fork":false,"pushed_at":"2021-06-07T19:28:08.000Z","size":5,"stargazers_count":7,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-08-03T04:08:03.315Z","etag":null,"topics":["bluepill","bluepill-board","can","can-bus","canbus","gmlan","stm32","stm32duino","stm32f103","stm32f103c8t6","swcan"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adamczykpiotr.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-06-07T16:31:52.000Z","updated_at":"2024-05-16T22:11:43.000Z","dependencies_parsed_at":"2023-04-03T13:19:33.276Z","dependency_job_id":null,"html_url":"https://github.com/adamczykpiotr/STM32duino_CAN_Library","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamczykpiotr%2FSTM32duino_CAN_Library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamczykpiotr%2FSTM32duino_CAN_Library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamczykpiotr%2FSTM32duino_CAN_Library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamczykpiotr%2FSTM32duino_CAN_Library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adamczykpiotr","download_url":"https://codeload.github.com/adamczykpiotr/STM32duino_CAN_Library/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224774815,"owners_count":17367797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bluepill","bluepill-board","can","can-bus","canbus","gmlan","stm32","stm32duino","stm32f103","stm32f103c8t6","swcan"],"created_at":"2024-08-03T04:00:59.468Z","updated_at":"2024-11-15T11:31:18.562Z","avatar_url":"https://github.com/adamczykpiotr.png","language":"C++","readme":"# STM32duino_CAN_Library\nCanBus library for STM32F103 running on STM32duino, tested on F103C8T6 variant.\nKey advantages:\n* Object-oriented programming style\n* Support for inline Can::Frame initialization\n* Support for 33.3KBPS CAN (GMLAN/SWCAN)\n\nInner workings based on [nopnop2002](https://github.com/nopnop2002/Arduino-STM32-CAN/tree/master/stm32f103)'s sketch.\n\n## Supported board / Can-Bus parameters:\n\nSTM32F103 pinouts:\n```cpp\nenum Can::Pinout {\n  RX_PA11_TX_PA12,  // 36/48/64/100/144 pin packages\n  RX_PB8_TX_PB9,    // 48/64/100/144 pin packages\n  RX_PD0_TX_PD1,    // 100/144 pin packages\n};\n```\n\nBitrates:\n\n```cpp\nenum Can::Bitrate {\n  CAN_33K3BPS,\n  CAN_50KBPS,\n  CAN_100KBPS,\n  CAN_125KBPS,\n  CAN_250KBPS,\n  CAN_500KBPS,\n  CAN_1000KBPS,\n};\n```\n\n## Can-Bus frame:\n\n```cpp\nclass Can::Frame {\npublic:\n  uint32_t id;\n  uint8_t length;\n  uint8_t data[8];\n  FrameFormat format;\n  FrameType type;\n}\n```\nTypes and formats:\n\n```cpp\nenum Can::FrameFormat {\n  Standard,\n  Extended, \n};\n\nenum Can::FrameType {\n  Data,\n  Remote,\n};\n```\n\n## Example usage:\n\n```cpp\n#include \"CanBus.hpp\"\nusing namespace Can;\nCanBus can0;\n\nvoid setup() {\n  Serial.begin(9600);\n\n  bool ret = can0.begin(Bitrate::CAN_33K3BPS, Pinout::RX_PB8_TX_PB9);\n  Serial.println(ret ? \"BOOT OK\" : \"BOOT FAILURE\");\n  if (!ret) while(true);\n}\n\nFrame rx;\nFrame tx = { 0x7FF, 3, {0x01, 0x02, 0x03} };\n\nvoid loop() {\n\n  if(can0.checkReceive()) {\n    can0.receive(\u0026rx);\n    rx.print();\n  }\n\n  tx = { 0x17FF, 3, {0x01, 0x02, 0x03}, FrameFormat::Extended, FrameType::Data };\n  can0.send(\u0026tx);\n}\n```\n","funding_links":[],"categories":["Hardware"],"sub_categories":["ARM"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamczykpiotr%2FSTM32duino_CAN_Library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadamczykpiotr%2FSTM32duino_CAN_Library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamczykpiotr%2FSTM32duino_CAN_Library/lists"}