標籤: C/C++
所有帶有標籤「c-c」的文章。
一種巧妙及噁心並具的 C 語言寫法:達夫裝置 (Duff's device)
達夫裝置(Duff's device) 是一種用來進行複製的特殊寫法,它非常巧妙地運用 C 語言 switch-case 的特性來達成,但這種寫法真的滿噁心的(連作者自己也使用 Disgusting 來描述)。
發佈#程式
#C/C++
《流暢的C》——適合C語言的各種 Pattern
Fluent C
這本書的內容其實算基本的但很實用。它整理了一系列可以用在不同情況下的模式(pattern),並且詳細地描述了它們各自的優缺點、限制和要注意的事情。如果有時候不確定某個功能要用什麼方式寫的話,可以依據書中的分析來選擇最適合的寫法。
發佈#閱讀
#心得
#程式
#C/C++
C 語言 Coding Style 規範
我的編程風格
稍微整理了一下我自己習慣的 C 語言 Coding style。這些規則只是我自己的喜好。
發佈#心得
#程式
#C/C++
C 語言用 K&R Coding Style 的最大理由不是省行數
以實例分析使用 K&R 風格的優點
多年來,就算我在寫其它語言時用的都不是 Allman 風格。但是只要我寫 C,我就會自然而然地用 Allman。而且我甚至有點反感 K&R,更不要說是花括號行為不一致的 Linux K&R 了。 我原本只是想整理一個自己偏好的 Coding style,但是在仔細思考詳細的規則和實際寫程式會遇到的情況後,我發現 K&R 似乎才是唯一的真理。也總算理解 Linux kernel coding style 手冊裡的那段話:
發佈#心得
#程式
#C/C++
STM32 LibOpenCM3:CRC
前言:CRC(Cyclic redundancy check)即循環冗餘校驗是一種雜湊函式,通常用於通訊,用以讓接收方確認資料是否正確。 多數的 STM32 家族都有內建 CRC 計算單元,本篇要來介紹如何使用。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
STM32 LibOpenCM3:I2C
前言:在上一篇中,我簡單介紹了 SPI 的用法,而除了 SPI 外還有另一種非常常見的通訊協定——I²C(以下稱 I2C)。 I2C 和 SPI 一樣是主從式架構,I2C 的主要特色就是無論有多少 Slave device 都只需要兩條線就可以完成通訊。 在這一篇文章中,我不會詳細介紹 I2C 本身,但建議還是要對它有基本的瞭解比較好,在此推薦「I2C bus 簡介 (Inter-Integrated Circuit Bus) @ 傑克! 真是太神奇了!-)」及「【Day21】I2C的介紹 - iT 邦幫忙」這兩篇文章。 24C256 是一個擁有 I2C 介面的 EEPROM,這次將示範如何使用 STM32 來透過 I2C 對其進行資料的讀寫,且可以用 USART 進行操作。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
STM32 LibOpenCM3:SPI (Slave mode)
前言:上次已經介紹了 SPI 作為 Master device 的程式,這次要接著介紹作為 Slave device 的程式寫法,讓 Master 與 Slave 可以互相溝通。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
STM32 LibOpenCM3:SPI (Master mode)
前言:SPI(Serial Peripheral Interface)是一種常見的同步序列通訊協定,為主從式架構。有許多感測器或模組都使用 SPI 進行通訊。 這次的範例要實現 USART 與 SPI (Master mode) 的轉發器——把 USART 接收到的資料由 SPI 發送出去,而 SPI 收到的資料由 USART 發送。並且有一個 EXTI 的外部請求接腳。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
STM32 LibOpenCM3:ADC Timer 觸發
前言:ADC(Analog to Digital Converter)顧名思義是將類比訊號轉換成數位訊號的元件,現今多數 MCU 都會內建 ADC,而這也是相當基本且常用的功能。 之前的文章已經介紹過 3 中不同的 ADC 使用環境,這次要再介紹以 Timer 定期觸發 ADC 進行轉換的寫法,且一樣會啓用 ADC 的轉換完成(EOC)中斷。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
STM32 LibOpenCM3:ADC 中斷
前言:ADC(Analog to Digital Converter)顧名思義是將類比訊號轉換成數位訊號的元件,現今多數 MCU 都會內建 ADC,而這也是相當基本且常用的功能。 在之前的篇章中已經分別介紹 Regular 及 Injected 的單與多通道,之前對於等待 ADC 轉換完成的程式寫法都是單純的 Blocking(阻塞),這次要介紹中斷的寫法,使用中斷對於大量的 ADC 轉換作業會比起 Blocking 更有效率。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系 統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式