原创 c語言多維數組與指針

一.前言: 對於數組想必大家都不陌生首先得要知道的是對於數組元素在內存存儲是連續性的。 例如: char a[10]    //那麼數組a的各個原數在內存中的存儲地址爲:0X01~0X10 而一維數組相對於多維數組來說很簡單的,然而數組a

原创 c語言預處理剖析

裝載自:https://www.cnblogs.com/clover-toeic/p/3851102.html    

原创 stm32系統時鐘初始化過程剖析

STM32有以下4個時鐘源: 高速外部時鐘(HSE):以外部晶振作時鐘源,晶振頻率可取範圍爲4~16MHz,我們一般採用8MHz的晶振。 高速內部時鐘(HSI) : 由內部RC振盪器產生,頻率爲8MHz,但不穩定。 低速外部時鐘(LSE)

原创 ucosiii常用API

代碼臨界區 CPU_SR_ALLOC() OS_CRITICAL_ENTER() OS_CRITICAL_EXIT() 延時 OSTimeDly() OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_HMSM_STRIC

原创 ucosiii

UCOSIII任務調度可剝奪型任務調度任務調度就是中止當前正在運行的任務轉而去執行其他的任務。UCOSIII是可剝奪型內核,因此當一個高優先級的任務準備就緒,並且此時發生了任務調度,那麼這個高優先級的任務就會獲得CPU的使用權!U

原创 nrf24l01使用與調試經驗總結

最近的項目用到了NRF芯片,進過幾天的奮戰總算是將所有的坑都填滿了。 --------------------------------------------------------華麗的分割線(以下介紹NRF特性)-----------

原创 spi通信協議

學單片機必須要掌握的集中串行通信協議中spi就是其中之一。 下面主要是講解下個人對於spi通信時序圖以及通信協議的理解(有說錯的請大指出,小弟也是剛學的有很多不懂)。 下面進入正題:  SPI簡介 SPI就是串行外圍設備接口,它是一種高速

原创 stm32f103與mpu6050通信詳解

在做單片機與mpu6050通信之前我們得了解下mpu6050的特性和內部寄存器,而單片機和mpu6050的通信就是通過配置內部寄存器來實現的。 -------------------------------------華麗的分割線(以下介

原创 stm32f103pwm輸出

前面介紹了定時器的基礎知識以及更新中斷,本次我們將一起探討利用定時器的輸出pwm。 如果對定時器不瞭解的先觀看這個帖子:https://blog.csdn.net/zj490044512/article/details/83718775

原创 stm32f103輸入捕獲

stm32的定時器具有捕獲功能,能夠捕獲上升沿或者下降沿然後觸發中斷。 定時器框圖: 細化框圖: 濾波器:判斷在捕獲到邊沿信號的時候,以Fdts的頻率連續採集N次該引腳上電平判斷電平是否穩定。其中Fdts由控制寄存器 1(TIMx_C

原创 stm32f103定時器中斷

stm32爲我們提供了8個定時器,分爲:通用是定時器(TIM2~TIM5),高級定時器(TIM1和TIM8),基本定時器(TIM6和TIM7)。 至於三者之間的區別可以參考以下博客:https://blog.csdn.net/dukai3

原创 qt編譯問題

最近做一個項目遇到個問題:qt修改源程序後運行程序得到的還是上次運行的結果,例如當我們在程序某處設置debug輸出時,運行程序debug沒有輸出到控制檯。 這是由於我們的系統時間的改變導致的。當項目在之前編譯過,我們改變系統時間那麼我們再

原创 iic通信的深入理解(主從設備通信)

雖然之前也研究了先iic同行基本的時序你弄明白了,可是在機子寫at24c02驅動的時候由於理解不夠透徹出了點問題。   一.寫數據 24c02的寫入數據,可以看到主從設備iic中寫的過程:起始信號->器件地址(7位地址加一個讀寫位)->等

原创 基於51 單片機的串口收發數據

在進行串口的收發數據過程中一定要注意波特率的問題。 大多數51單片機用的都是11m晶振而只有少部分用的是奇葩的12m(樓主的就是),在12m晶振進行串口通信時切忌要將波特率設置爲4800以下,應爲12m晶振的波特率在9600以上誤差很大容

原创 iic通信原理

1.iic總線顧名思義只有2根線:SDA數據線,SCL時鐘線。 主設備與各個從設備都是掛載在這兩根線上如圖: 每個設備都有自己的一個地址,當主機要與多個外圍設備中的一個設備通信時,首先要發送要通信的器件地址以確定通信目標。 2.iic空