原创 C++計算單利與複利

/* Daphne 以 10%的單利投資 每年的利潤 爲 100 * (1 + 0.1) Cle0 以5%的複利投資,利息 = 本金 * 利率 */ #include <iostream> float simpleIntere

原创 array和vector的區別

array array <typeName, n_element> a; typeName: 數據類型 a: 對象名 n_element:只能是整形常量 vector vector v(n_element); typeName:

原创 11-固件庫點亮LED

固件庫點亮LED 前提條件 建立一個固件庫工程模板可以參考以下博客 https://blog.csdn.net/cainaiolin/article/details/52012786 硬件基礎 我的開發板上面一共有三個led燈

原创 stm32固件庫中GPIO的工作模式

固件庫中GPIO的工作模式 總結一下可分爲三種工作模式 輸入模式、輸出模式、複用模式 1、輸入模式 1.1上拉輸入:默認電平上拉 1.2下拉輸入:默認電平下拉 1.3浮空輸入:電平不確定完全由外部輸入決定,多用於按鍵開關 1.

原创 STM32的外部中斷EXTI

文章目錄EXTI_InitTypeDef的簡單說明EXTI_InitTypeDef的代碼NVIC_InitTypeDef結構體說明外部中斷示例代碼硬件基礎軟件設計要點bsp_exti.h 頭文件bsp_exti.c中斷函數主函數m

原创 瞭解STM32標準庫

CMSIS標準和庫層次關係 由於Cortex系列芯片採用相同的內核,區別在於核外的片上外設之間的差異,這些差異導致軟件在同核不同外設的芯片上移植困難。爲了解決這些兼容問題ARM 與芯片廠商建立了 CMSIS 標準(Cortex M

原创 ethercat幀格式的詳細解析

EtherCAT UDP(User Datagram Protocol) 可以將 EtherCAT 協議打包至 UDP/IP(Internet Protocol)的數據幀內。此時,任何帶以太網協議 堆棧的控制都可以尋址 Ether

原创 I2C協議的解析

I2C協議的產生 I2C通訊協議由Phiilps公司開發,由於引腳少,硬件實現簡單,可拓展性強,不需要 USART,CAN等通訊協議的外部收發設備,被廣泛使用在多個集成電路IC間的通訊。 I2C協議的物理層 1)支持設備的總線。“

原创 堆和棧的區別

堆和棧的區別 堆(Heap)與棧(Stack)是開發人員必須面對的兩個概念,在理解這兩個概念時,需要放到具體的場景下,因爲不同場景下,堆與棧代表不同的含義。一般情況下,有兩層含義: (1)程序內存佈局場景下,堆與棧表示兩種內存管理

原创 Shell腳本編程之常用命令3

代碼中的[]執行基本的算數運算,如 #!/bin/bash a=5 b=6 result=$[a+b] #注意等號兩邊不能有空格 echo "result : $result" 結果 result : 11

原创 構建庫函數雛形

外設寄存器結構體的定義 考慮到外設寄存器的地址都是基於外設基地址的偏移地址,都是在外設基地址上逐個連續遞增的,每個寄存器佔 32 個字節,這種方式跟結構體裏面的成員類似。所以我們可以定義一種外設結構體,結構體的地址等於外設的基地址

原创 三極管和mos管

三極管分爲 pnp,npn 兩種類型,常見的封裝類型sot23 NPN(s9013) PNP(s9012) 總結:三極管導通是時候電流是順着箭頭流的 三極管,NPN的負載接C端,PNP的接E端。 MOS 管 nm

原创 Shell腳本編程之常用命令2

Shell數組 數組中可以存放多個值。Base Shell只支持一維數組。初始化的時候不需要定義數組的大小數組元素的下標也是從0開始的。 Shell數組用括號表示,元素用"空格"符號分割開,語法格式如下: array_name=(

原创 Shell腳本之變量與傳遞參數1

何爲Shell腳本 第一個shell腳本 #!/bin/bash echo "hello world" shell是指一種應用程序,這個應用程序提供了一個界面,用戶可以通過這個界面訪問操作系統內核服務。Ken Thompson的

原创 stm32F103VET6的啓動文件詳解

一、啓動文件簡介 啓動文件是用彙編語言編寫的,是上電之後執行的第一個程序。主要以一下幾個功能 1、初始化堆棧指針SP=_initial_sp 2、初始化PC指針 = Rest_Handler 3、初始化中斷向量表 4、配置系統時鐘