原创 PCB畫異形板

以圓環舉例: 先畫兩個圓,選中小圓,點擊Tools->Convert->Creat Board Cutout from Selected Primitive。 然後選中最大的外形,然後Design->Board Shape->De

原创 WS2812B使用備忘

在淘寶賣的ws2812b rgb燈雖然都是同一名稱,但是各家的數據格式都有有微小的不同,參考各家數據手冊會發現高低電平的時間有許多不同。 如在淘寶“南方光電”買的ws2812b數據手冊如下: 再如“糊糊蝶照明”RGB燈條的數據手

原创 STM32F103學習筆記(三) 串口的標誌位 USART_FLAG_TXE 和USART_FLAG_TC的理解

USART_FLAG_TXE 發送數據寄存器空標誌位 (彈倉) USART_FLAG_TC 發送完成標誌位 (彈匣) USART_FLAG_TXE 該寄存器爲空,可以往裏存放數據 USART_FLAG_TC 數據已全部發送

原创 STM32F103學習筆記(一)使用內部rc振盪器做時鐘源

寫在前面:標題“使用內部rc振盪器做時鐘源”其實不太準確,實際應該是“使用內部rc振盪器經PLL倍頻後做時鐘源”,爲了簡單本文統一用“使用內部rc振盪器做時鐘源”。 在做開發時,一些場合對時鐘要求不是非常精確的時候可以省掉外部晶體

原创 中移物聯網入門記錄(1)

中國移動之前搞了個活動可以申請STM32的物聯網開發板,心癢申請了一下,雖然最後沒有申請到但是從學長那裏白嫖了一塊麒麟座MINI開發板,主控STM32F103CBT6,板載SH120,ESP8266和CH340。個人覺得這塊板子設

原创 ws2812b RGB燈工作時亂閃的問題

這兩天心血來潮買了兩塊ws2812b的燈板來玩,宣傳16w色全綵RGB,十分炫酷。買的兩種板子都是同樣的燈,區別在於一個是44一個是88的。 首次寫好44的程序,接好電路5v供電,閃瞎狗眼,趕緊換到3.3v,也能夠正常完美地工作,

原创 STM32F103 flash地址與數據存入時高低位的關係

這幾天做東西用到了stm32f103的內置flash模擬eeprom,其中有個32位的數據需要存儲,但是正點原子的例程並沒有給出直接存取32位數據的函數,於是乎自己寫了個。 首先複習概念,在stm32f103中: 8比特(bit)

原创 SPI寫入數據的時候記得讀取,不然會一直讀出0xFF!

真的是越來越不清醒了,寫一個SPI字節的時候居然忘記要讀取數據了,因爲SPI爲雙線結構,只要時鐘線有信號,兩條線上都會有信號,我就只發送數據,要讀取的數據的時候再讀取,這樣子會造成溢出標誌OVR被置1,因爲平時的數據沒有被讀取,又

原创 STM32 PC13,14,15引腳可同時作爲輸出

在中文手冊中(參照2009年4月 STM32F103x8B數據手冊 英文第10版 翻譯),PC13,14,15特別註明了不得同時作爲輸出: 但是在官網最新的手冊中沒有發現這個限制,不知道是改動了還是本來就沒寫: 英文手冊地址:

原创 STMCube學習記錄(三) 打開Debug口

很多人在用Cube生成工程正確編譯並燒錄後,發現再也不能燒錄了,keil也找不到目標板了。很明顯這是調試接口被關閉了,打開就好了。 如上圖,在側邊SYS中找到debug,根據需求選擇SW,JTAG(4),JTAG(5),重新生成

原创 STMCube學習記錄(一)RCC時鐘源配置

打開STMCube的RCC配置界面如下圖, 在用cube配置時鐘時,有下面三個選項 Disable(禁用) BYPASS Clock Source(旁路時鐘源) Crystal/Ceramic Resonator(晶體/陶瓷晶振

原创 STMCube學習記錄(二)點亮LED

直接上圖,在GPIO選項中如下配置, 下面幾個選項: GPIO output level:默認輸出電平 GPIO mode:GPIO模式,有推輓和開漏兩種 GPIO Pull-up/Pull-down:上下拉模式 Maximum

原创 STMCube學習記錄(四) 定時器中斷 LL庫(Timer 2)

打開定時器配置,從模式選擇關閉,時鐘源選擇內部時鐘,使能中斷,記得配置下面的Parameter Setting,就跟之前配庫函數一樣配就行。 配置完Timer去左邊NVIC裏設置下,TIM2中斷使能勾上。 其他LED的GPIO

原创 串口的標誌位 USART_FLAG_TXE 和USART_FLAG_TC的理解

http://www.openedv.com/posts/list/0/58919.htm

原创 STM32 USB時鐘設置

原則:STM32 的USB時鐘不能超過48MHZ,因此如果時鐘源爲72MHZ,就需要進行1.5分頻: RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5); 如果時鐘源爲48MHZ,則