娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年12月20日(星期五)

正在發生

2018年12月20日 | STM32F4 串口程序 調試記錄 hardfault_handle 問題

發布者:meilidaowl 來源: eefocus關鍵字:STM32F4  串口程序  調試記錄 手機看文章 掃描二維碼
隨時隨地手機看文章

項目型號: Proj01_uart


// 從現在起開始使用項目型號,此程序調試通過


/*****************************************************************************

** 使用UART4通信

** TXD = PA0

** RXD = PA1

******************************************************************************

** 喬海權

** 14-04-03

******************************************************************************

** 調試記錄


// 第一次失敗了都??原因是什么??

// 判斷是 GPIO 的模式設置錯誤,我記得有文檔講的,可是沒找到啊??   

// 解決辦法:官網的設置 都是 GPIO_Mode_AF,試一下吧

// 先去官網下載一個 固件庫,通用版本的,找到對應的具體芯片型號就OK. 不過有點卡 啊

// http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1577/LN11/PF252140#

// 點擊 all


// 第二次失敗了,發現程序一直卡在 startup_stm32f4xx.s文件里面的 hardfault_handle 這里,不清楚是怎么回事

// 解決辦法:網上提示 stm32f4xx_it.c文件沒有,加入之后一直卡在 這個文件的中斷處理函數里面,推測是硬件錯誤


// 第三次失敗

// 把對應板子的頭文件加進來試試, stm32f4_discovery.h


// 第四次失敗,建議檢查main.c 文件,是不是沒注意到的地方

// 第五次失敗,預定義里面添加 STM32F4XX

// 第六次失敗,添加 system_stm32f4xx.h 之前遇到的中斷可以OK,之所以找到這個文件,是通過對比 之前的例程,發現

// 里面并沒有定義 SystemInit 這個函數,原來這個函數在 system_stm324xx.h 這個文件里面已經定義好了。這個函數推測是

// 設置 MCU 的初始化,包括時鐘之類的。


 


// 總結,此次卡在 hardfault_handle  主要是 SysteInit這個函數,因為 這個函數會設置MCU 的一些默認參數,如果這個函數沒有的話,MCU會進入硬件錯誤。

*/


#include

#include

// GPIO_TypeDef 是 寄存器的數組

//GPIO_TypeDef GPIO_InitStructure;  //這行代碼是錯誤的?

GPIO_InitTypeDef GPIO_InitStruct;

USART_InitTypeDef UART_InitStruct;


// 這個函數 在另外一個文件里面已經定義了

//void SystemInit(void)

//{

//}


void clk_configuration(void)

{

 RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, ENABLE);

 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

}


// 為什么頭文件改不了???

// keil 的 project里面的有些文件是 上面帶個鑰匙的,所以是鎖著的??

// OK, 把文件的屬性只讀去掉就行,在電腦里面,不是keil


void gpio_configuration(void)

{

 // TXD 引腳配置,輸出

 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;

 // 根據官網的寫法,應該是 GPIO_Mode_AF

 //GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;

 GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;

 GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;

 GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;

 GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;

 GPIO_Init(GPIOA, &GPIO_InitStruct);

 

 // RXD 引腳配置,輸入, 我記得是有一個手冊專門講那個引腳配置成什么的,

 // 為什么找不到了????

 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_1;

 // 應該是 GPIO_Mode_AF

 //GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;

 GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;

 // 如果是輸入模式,下面的代碼應該是不用的吧。開漏極,或者推挽輸出??

 // 官網的這句話是有的哈

 //GPIO_InitStruct.GPIO_OType = GPIO_OType_OD;  

 GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;

 // 上拉下拉設置

 GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;

 GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;

 // 其實下面這句話,把結構體 GPIO_InitStruct 的參數寫進 GPIOA 里面, GPIOA 是一個GPIO 的寄存器結構體

 // 按順序排列了 GPIO 的所有寄存器

 GPIO_Init(GPIOA, &GPIO_InitStruct);

 

}


void uart4_configuration(void)

{

 UART_InitStruct.USART_BaudRate = 9600;

 UART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;

 UART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

 UART_InitStruct.USART_Parity = USART_Parity_No;

 UART_InitStruct.USART_StopBits = USART_StopBits_1;

 UART_InitStruct.USART_WordLength = USART_WordLength_8b;

 USART_Init(UART4, &UART_InitStruct);

 

 GPIO_PinAFConfig(GPIOA, GPIO_PinSource0, GPIO_AF_UART4);

 GPIO_PinAFConfig(GPIOA, GPIO_PinSource1, GPIO_AF_UART4);

 

}


void delay(unsigned int j)

{

 while(j--);

}


// 根據 PDF文檔里面講的 alternate function mapping ,串口 4 映射到 AF8 里面,我是不是這個函數,

// 沒寫???

// 問題解決,確實是這個問題。

int main(void)

{

 clk_configuration();

 gpio_configuration();

 uart4_configuration();

 USART_Cmd(UART4, ENABLE);

 while(1)

 {

  // 一直卡在下面這句話里面,為什么感覺 USART_IT_TXE 這個不太正確??

  //while((USART_GetFlagStatus(UART4, USART_IT_TXE)) == 1); 

//  while((USART_GetFlagStatus(UART4, USART_FLAG_TXE)) == SET);

   delay(10000);

  // 下面這個函數居然跳不出來

  USART_SendData(UART4, 'A');

 }

}


關鍵字:STM32F4  串口程序  調試記錄 引用地址:STM32F4 串口程序 調試記錄 hardfault_handle 問題

上一篇:基于STM32的FREERTOS應用的幾個常見問題
下一篇:關于stm32 HardFault_Handler 異常的處理 死機

推薦閱讀

采埃孚8擋插電式混合動力變速箱由于把變速器的液力變矩器的部分替換成了電機,這款采埃孚混動變速器的安裝尺寸與傳統變速器的安裝尺寸大致相同。它可以匹配小功率或者大功率的電機,能適用于從弱混到插電混動的各種車型。這款變速器的適用車型范圍很廣,變速器的扭矩范圍在200-1000牛米之間。它的模塊化設計可以適用于后輪驅動車型以及四輪驅動車型,以此...
項目背景 上海申龍客車有限公司致力于客車整車研發、制造和銷售,產品涵蓋新能源客車、公路客運、旅游、公交、團體、廂式物流車等各個細分市場,是上海唯一、國內為數不多的綜合性客車制造企業。 公司自2005年9月成立以來,不斷創新,堅持自主設計制造滿足客戶需求。嚴格執行TS16949標準、獲得國家3C認證,已形成了6米至13.7米,中高檔產品檔次的20多類200...
雖然在本月初高通已經正式公布新一代旗艦平臺驍龍888,但是鑒于目前并無量產機型上市,坊間也只有一些測試機型偷跑的成績,因為并非最終量產版本所以差距蠻大的。今天,高通官方終于公布了基于驍龍888樣機的跑分測試成績,其中GPU性能提升十分搶眼。驍龍888測試工程樣機關于驍龍888的我們便不再贅述,這款5G SoC芯片采用三星5nm工藝制程,首次引入ARM Co...
當Intel的CEO Pat Gelsinger最近宣布計劃在2022年讓Mobileye上市時,這相當于含蓄地承認了雙方的不匹配,而在許多電子行業觀察人士看來,這一點已經很明顯了。 自從被Intel收購后,Mobileye的業務蒸蒸日上,但Intel幾乎沒有利用這些技術為Intel品牌的產品在汽車市場上創造機會。此外,Intel已經承諾,作為Mobileye的母公司,明年將成為德國和以色列的Rob...

史海拾趣

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 甘南县| 八宿县| 沙雅县| 罗源县| 陇南市| 阜南县| 荣昌县| 秦皇岛市| 平陆县| 潮安县| 闸北区| 越西县| 库车县| 莫力| 伊金霍洛旗| 尤溪县| 宁安市| 郯城县| 洞口县| 江孜县| 英超| 军事| 冀州市| 北票市| 富阳市| 姜堰市| 奉新县| 玉山县| 襄樊市| 夏邑县| 冷水江市| 云浮市| 泰来县| 左贡县| 金溪县| 斗六市| 班玛县| 米林县| 广安市| 双牌县| 宝丰县|