1. 程式人生 > >STM32移植到GD32的問題---20170923

STM32移植到GD32的問題---20170923

1、GD32採用ADC同步注入方式時,需要同時配置ADC1和ADC2;

但是隻有當ADC時鐘分頻為6時,才可以執行;大於分頻6時,程式會卡死在ADC_GetBitState(ADC1,ADC_FLAG_EOIC)中;

2、ADC1和ADC2同步注入時,出現ADC2通道的取樣值一直為零。 

需要同時對ADC1和ADC2同時都配置,才能夠取樣的。(再對硬體板子重新焊接之後就好了)

2.1 利用TIM1的TRGO觸犯ADC的取樣,TIMER_RepetitionCounter引數設定為1,但是實際觸發頻率是3個PWM觸發一次ADC取樣

實際測試條件:內部時鐘64MHZ,ADC時鐘6分頻(對應的ADC的時鐘頻率不為整數),TIM1不分頻;

       問題解決:改變ADC的時鐘頻率,使得其為整數,即可實現一次PWM週期觸發ADC取樣一次;

2.2 關於利用TIM1的TRGO和CH4通道觸發ADC的同步取樣,有時候會出現不能觸發取樣的問題(ADC->STR = 0X0012)

1)利用TRGO觸發ADC取樣

TIM1分頻為8、1和0,ADC分頻為4;------仍然會出現有時候不能觸發ADC取樣的問題

2)利用CH4通道觸發

TIM1分頻為0,ADC分頻為4;------仍然會出現有時候不能觸發ADC取樣的問題

TIM1分頻為8和1,ADC分頻為4;------不會出現該問題

3、GPIO_DeInit(GPIOB);函式初始化,只能在第一次使用,如果在初始化相關的IO口,再次使用GPIO_DeInit(GPIOB)該函式,會導致之前配置的IO出現問題。

4、GD32的串列埠配置加上ADC配置之後的函式,容易出現ORE過載錯誤,導致無法進入中斷。

USART_DataSend(USART3, *Data++);
while(USART_GetBitState(USART3, USART_FLAG_TC)==ERROR)
{};順序改為這個就可以正常傳送資料了。

5、注意bool型別的定義,否則會導致定義的變數數值不對。

6、讀取Hall訊號的IO口時,發現輸入IO口的訊號存在中間階梯的情況,導致讀取訊號不對

晶片引腳虛焊導致的該問題。

7、同樣的簡單測試程式GD32和ST32完全相容的晶片移植時,需要重新選擇晶片配置(在主選單中開啟Flash->Configure Falsh Tools配置視窗,切換到“Utilities"頁。

按“Setting"按鈕進入“Flash download setup"配置視窗,然後一路按“OK”按鈕退出配置視窗在“Flash download setup"配置視窗點選“Add”按鈕進入“Add Flash Programming Algorlthm"視窗在“Add Flash Programming Algorlthm"視窗),否則會出現“”Error: Flash Download Failed-"Cortex-M3" “”下載燒錄錯誤。

8、GD32F130C8T6和GD32F103C8T6的區別---20171013

1)二者開發時,所用的韌體開發庫是不一樣的()。

        2)晶片的時鐘頻率(48MHZ和108MHZ)也不一樣,Flash和SRAM大小也不一樣;

3)晶片的引腳35、36不一樣(F130:PF6、PF7【I2C2_SCL、I2C2_SDA】;F103:VSS2、VDD2)

4)晶片的引腳2、10複用的功能不一樣的

5)F130中含有1個ADC,最多隻能取樣4路;F103中含有2個ADC,最多隻能取樣8路;

相關推薦

STM32移植GD32的問題---20170923

1、GD32採用ADC同步注入方式時,需要同時配置ADC1和ADC2; 但是隻有當ADC時鐘分頻為6時,才可以執行;大於分頻6時,程式會卡死在ADC_GetBitState(ADC1,ADC_FLAG_EOIC)中; 2、ADC1和ADC2同步注入時,出現ADC2通道的取樣

STM32GD32的程式碼移植

STM32的函式配置#define RCC_PLLMul_5 ((uint32_t)0x000C0000) void SetSysClock_hp(void)

STM32移植STemwin,跑FREERTOS (作者:wenyun 日期:20180907)

首先,非常感謝正點原子、安富萊、野火等等,感謝他們公開原始碼,分享各種資料,給我在嵌入式這條道路上提供了很多的幫助。 以下移植使用的平臺是正點原子的戰艦STM32開發板,液晶屏驅動是ILI9341。 一、移植步驟 注:移植液晶屏:ILI9341 1、下載STemwin522原始碼

STM32移植cJSON注意free釋放記憶體

如題: 關於怎麼移植的 網上有很多參考文件,也很簡單,因為cjson只有2個檔案,一個cJSON.c 一個cJSON.h檔案。 關於如何釋放記憶體,自己除錯的時候也是搜了度娘,網上好多方法並不正確,故寫下此文件 使用時的流程是: cJSON * root;

STM32移植cJson和FreeRTOS時,cjson解析和建立失敗問題

版權宣告:本文為博主原創文章,未經博主允許不得轉載。https://blog.csdn.net/u013184273/article/details/84870672 一,環境:STM32+cJson+FreeRTOS+Heap_4.c 二,FREERTOS的記憶體:Heap_4 Fre

Micropython學習(二)STM32移植

在實驗室找了塊微雪的STM32F407ZET6(Micropython支援的系列)的核心板,移植下Micropython的原始碼,也遇到些問題,最後解決了,在這寫下過程記錄一些經驗教訓。 首先本人環境為WIN10+Ubuntu18.04(非虛擬機器,當然也可以用虛擬機器

stm32移植ecos #7,移植ecos併成功執行helloworld程式

前段時間,成功的把redboot移植到了stm32板子上,並留下了一個疑問:既然redboot是ecos的一個單執行緒應用,那麼不要redboot而直接執行ecos的應用程式是否可行呢?對這個問題,結合我對ecos的瞭解,理論上是可行的,因為它們都是採用相同的HAL(硬體抽

stm32 移植cJson 注意free釋放記憶體!!

如題: 關於怎麼移植的網上有很多參考文件,也很簡單,因為cjson只有2個檔案,一個cJSON.c 一個cJSON.h檔案。 我用的是原子的stm32 工程檔案測試,他們有自己定義的malloc.c      malloc.h,很方便可以直接用。 需要修改的就是下面:把原

STM32移植 MQTT

stm32移植mqtt 將MQTTPacket\src目錄下的檔案新增到工程 MQTTPacket\samples下的transport.c、transport.h新增到工程。 //接收資料,recv函式僅僅是copy資料,真正的接收資料是

stm32移植UCOSIII的空間不足問題解決

在stm32上移植一個UCOSIII系統在編譯時提示RAM空間不足的問題 問題詳情如下: 解決辦法如下: 解決辦法一: 換一款RAM空間更大的晶片 解決辦法二: 增加編譯優化選項 一般keil上預設是不優化的,也就是如圖所示狀態,我們可以改成Leve

STM32移植lwip 檢索目錄

本系列主要講述在STM32F207VCT6平臺上利用LWIP庫實現TCP/IP通訊協議。遵循的原則是由淺入深,循序漸進,重實踐。閱讀本文需要有一定的C語言基礎,和基本的STM32微控制器操作。例如如何在IDE上新建工程,STM32基本暫存器操作,STM32庫檔案架構等沒有及進行介紹,還望一些在這些方面不太熟悉

STM32移植lwip之建立web伺服器

本篇目標:在之前能ping通pc機的工程基礎上搭建web伺服器,借鑑官方web伺服器的程式與網頁,能夠用pc機瀏覽器訪問web伺服器,並返回設定的網頁 材料準備: 除錯工具:用來除錯tcp連線下的資料接收(網路除錯助手) 測試瀏覽器:這裡使用的是Chr

STM32移植uIP

void tapdev_init(unsigned char *my_mac) { int i; /*初始化 enc28j60*/ enc28j60Init(my_mac); for (i = 0; i < 6; i++) { uip

Uip + Stm32移植問題總結

#include "stm32f10x.h" #include "stdio.h" #include "string.h" #include "uip.h" #include "uip_arp.h" #include "tapdev.h" #include "timer.h" #include "ENC2

stm32移植ecos,移植ucgui到ecos

ucgui是一個開源的輕型嵌入式GUI,使用廣泛,資料豐富,功能完整,尤其適合嵌入式產品的GUI。只是它開源但不免費。僅管如此,移植來玩玩還是可以的。 ucgui設計優秀,具有良好移植性,配合eCos framebuf優秀框架,可以讓你很快見到ucgui呈現的精美顯示介

如何從Cortex-m向STM32移植使用SPI介面協議

/*****************************************************************************************************  * @brief:LDC1000應用程式  * _________

STM32移植LWIP

本文使用的是STM32F207VCT6平臺,MII介面的RTL8201EL網路晶片,LWIP版本是1.4.1基礎工程是:已經實現了10ms定時,led燈1s閃爍,還有串列埠列印歡迎檢視本文所在的系列,S

STM32/GD32上內存堆棧溢出探測研究

研究 spa 重疊 ima 異常 cnblogs 指針 rtos 否則 無數次遭受堆棧溢出折磨,隨著系統變得復雜,故障點越來越難以查找!主要溢出情況如下:1,一般RAM最後兩塊空間是堆Heap和棧Stack,堆從下往上用,棧從上往下用,任意一個用完,都會進入對方的空間2,如

USMART 組件移植STM32

函數指針 串口數據 art 處理 直接 color 返回 因此 函數返回 USMART是由ALIENTEK開發的一個串口調試助手組件,通過它可以通過串口調試助手,調用程序裏面的任何函數並執行,單個函數最多支持10個輸入參數,並支持函數返回值顯示。 USMART支持的參數類型

移植 STM32 Keil 工程到 IAR遇到的常見問題

efi inf 自己 cal fun -m rom ID pre 常見問題一:Fatal Error[Pe1696]: cannot open source file "core_cm3.h" 解決方案: IAR的安裝路徑下已有CMSIS,不需要添加額外的文件,如果包含了