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

關于stm32的ad7792移植難題排解

發布者:RainbowJoy最新更新時間:2024-09-27 來源: elecfans關鍵字:stm32  ad7792  移植 手機看文章 掃描二維碼
隨時隨地手機看文章

轉換原理及參數指標

1. 采樣定理

2. 為了正確無誤的用圖5.2.2中所示的采樣信號vs表示模擬信號vi,必須滿足式中, fs>=2fmax

fs為采樣頻率;fmax為輸入信號vi的最高頻率分量的頻率;上式就是所謂的采樣定理。滿足采樣定理的條件下,可以用一個低通濾波器將信號vs還原為vi,這個低通濾波器的電壓傳輸系數|A(f)|在低于fmax的范圍內應保持不變,而在fs-fmax以前應迅速下降為零,采樣定理規定了A/D轉換的頻率下限。

AD7792 遇到的問題/學到的知識點

學到的知識點:

1.在stm32中

U8 : unsigned char

U16: unsigned short

U32: unsigned int

2. 在stm32中 AD7792采樣的電壓數值要經過轉換成ASCII碼字符在串口中打印出來有兩種編程方式實現:

u8TempD;

u16 Datau16;

char str[20];

unsigned short iData[3];

u8 Strvbat[8]={'/','/','/',',',0,0,0,0};

u8 ASCII[21]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','+',//10->16

',',//11-17

'-',//12-18

'.',//13-19

'/',//14-20

};

方式一:(簡潔版)

AD_VBat[TempD] = SPI_Read16Bit();

memcpy(&iData[0],& AD_VBat[TempD],2);

sprintf(str,'%d',iData[0]);

UART1_TX485_Puts(USART1,&str[0]);

方式二:(復雜版)

AD_VBat[TempD] = SPI_Read16Bit();

Datau16 = AD_VBat[TempD];

Strvbat[0]=ASCII[Datau16/10000];

Strvbat[1]=ASCII[Datau16%10000/1000];

Strvbat[2]=ASCII[Datau16%1000/100];

Strvbat[3]=ASCII[Datau16%100/10];

Strvbat[4]=ASCII[Datau16%10];

UART1_TX485_Puts(USART1,&Strvbat[0]);

while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET);


3.遇到的問題

問題一:通過串口打印,采樣的數值為32768左右轉化后的電池電壓為2.5V,而電池實際電壓應該為3.32v采樣數值應該為43582左右的數值;

問題根源:通道切換的問題;

AD7792有3個模擬輸入通道,初始化AD7792配置函數中,寫配置寄存器SPI_SendByte(0x10); /* 寫配置寄存器*/

SPI_Send16Bit(0x1080); // 偏置電壓禁用禁用熔斷電流單極性編碼內部基準

SPI_Send16Bit(0x1080)設置的采樣通道是采樣電流的通道,所以采樣的是電流的數值;

題二:在移植AD7792獨立出來時,發現電池電壓采樣值打印為0000;

問題根源:SPI配置問題;

原理圖:

錯誤配置:

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_7 ;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復用推挽輸出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //通用推挽輸出

GPIO_Init(GPIOA, &GPIO_InitStructure);

正確配置:

/* Configure SPI1 pins: SCK, MISO and MOSI */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_4|GPIO_Pin_7;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //通用推挽輸出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

/* 配置MISO為輸入 */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入

GPIO_Init(GPIOA, &GPIO_InitStructure);


關鍵字:stm32  ad7792  移植 引用地址:關于stm32的ad7792移植難題排解

上一篇:STM32單片機SPI的使用原理解析
下一篇:STM32單片機內存管理器實用代碼解析與工程應用指南

推薦閱讀最新更新時間:2025-05-15 12:44

FreeRTOS STM32移植筆記
1.前言 【1】其實說不上移植筆記,FreeRTOS已經移植至眾多平臺(MCU),包括MSP430,STM32等,這份筆記完全建立在官方代碼的基礎之上,簡單的說就是修改一些設置從而完成一個呼吸燈實驗。 【2】雖然有官方移植代碼,但是官方移植版本為STM32的V2.X庫,與現在流行的V3.5有比較大的區別。本筆記也是總結網上幾篇學習筆記,主要說明如果使用V3.5庫,需要做哪些修改。 【3】編譯軟件為IAR EWARM 6.5。 【相關博文】 【 FreeRTOS學習筆記——任務間使用隊列同步數據 】——如何使用FreeRTOS隊列。 【 如何在FreeRTOS下實現低功耗——MSP430F5438平臺 】
[單片機]
FreeRTOS <font color='red'>STM32</font><font color='red'>移植</font>筆記
Realtek 8192cu 驅動移植到 Android 2.2
開發板是三星 S5PV210,Android 2.2 需要到 Realtek 官網下載最新的驅動 v3.1.2590。最開始用v3.0 的驅動,這個是Realtek工程師直接提供的,遇到2個問題:(1)加載驅動模塊(insmod)時,報內核虛擬內存分配失敗,要求增加虛擬內存。開發板物理內存為1G,啟動內核時加vmalloc=512M后,該問題消失,驅動模塊能夠成功加載,但出現新的問題:(2)在掃描AP時,Android界面顯示“不能掃描”,驅動程序打印log顯示下載firmware失敗,查看驅動程序源碼發現,8192cu的驅動中包含了firmware二進制,運行時通過查表來取得firmware,但輪詢超時,導致模塊初始化失敗
[單片機]
s3c6410_u-boot-2010.03移植【續】
6.3)重新編譯,燒寫,運行 U-Boot 2010.03 (Sep 10 2014 - 23:39:40) for SMDK6410 CPU: S3C6410@533MHz Fclk = 533MHz, Hclk = 133MHz, Pclk = 66MHz (ASYNC Mode) Board: SMDK6410 DRAM: 256 MB Flash: 0 kB NAND: 2048 MiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: dm9000 Hit
[單片機]
linux-2.6.32在mini2440開發板上移植 移植看門狗驅動
1 在內核中配置看門狗驅動 Linux-2.6.32.2 內核具有完善的S3C2440 的看夢狗驅動,我們只需配置一下就可以使用 了。在內核源代碼目錄執行:make menuconfig,進入內核配置主菜單,依次選擇進入如 下子菜單: Device Drivers --- Watchdog Timer Support --- 打開看門狗配置菜單,在這里可以選擇對S2C2410/2440 中看門狗的配置選項。 以上配置所對應的驅動源代碼為:linux-2.6.32.2/drivers/watchdog/s3c2410_wdt.c 2 測試看門狗 雖然友善之臂提供了一個漂亮的圖形界面的看門狗測
[單片機]
linux-2.6.32在mini2440開發板上移植-移植Nand驅動并修改分區信息
編者:linux中的nand的移植由于使用了MTD技術,所以就沒有想象的那么復雜了。 1 Linux-2.6.32.2 內核所支持的Nand Flash 類型 Linux2.6.32.2 已經自帶了大部分Nand Flash 驅動, 在linux-2.6.32.2/drivers/mtd/nand/nand_ids.c 文件中,定義了所支持的各種Nand Flash 類型。 2 修改Nand Flash 分區表 但是系統默認的分區不是我們所需的,所以要自已修改,除此之外,還有Nand Flash的結構信息需要增加填寫,以便能夠適合系統自帶的Nand Flash 驅動接口,這可以參考SMDK2440 中關于Nand Flash 設備
[單片機]
Boa Web服務器在S3C2440開發板上移植
前面已經在PC機上完成了boa服務器的移植工作,《Boa Web服務器在PC上移植 》見http://www.linuxidc.com/Linux/2011-10/44729.htm, 下面介紹一下在S3C2440硬件平臺上如何完成相應工作,兩者大同小異,細節上稍有不同,不同之處我用紫色標注了出來 一、配置編譯boa 1. #tar zxvf boa-0.94.13.tar.gz 2. #mv boa-0.94.13 boa_arm 3. #cd boa_arm/src 4.boa.conf生效目錄設置 boa啟動過程中需要讀取一個配置文件:boa.conf,它的路徑由以下文件決定 第30行 #define SERVER_
[單片機]
linux2.6.32.2 mini2440平臺移植-- ADC 驅動移植
1.2.1 關于 S3C2440 的 ADC 和觸摸屏接口 Linux-2.6.32.2 內核并沒有提供支持 S3C2440 的 ADC 驅動程序,因此我們自行設計了一個,這個驅動比較簡單,屬于字符設備,。在 S3C2440 芯片中,AD 輸入和觸摸屏接口使用共同的 A/D 轉換器,見S3C2440芯片手冊第 16 章節,如圖。 1.2.2 在內核中添加 ADC 驅動 在 S3C2440 芯片中,AD 輸入和觸摸屏接口使用共同的 A/D 轉換器,因此,ADC 驅動和觸摸屏驅動若想共存,就必須解決共享 A/D 轉換器 資源這個問 題,因此在 ADC 驅動程序中聲明了一個全局的 ADC_LOCK 信號量。 (1)將
[單片機]
linux2.6.32.2 mini2440平臺<font color='red'>移植</font>-- ADC 驅動<font color='red'>移植</font>
基于AT91SAM9X35EK的嵌入式Linux+UBI根文件系統移植成功
經過近一個月的學習與實踐,終于在AT91SAM9X35EK開發板上跑起了Linux系統,用的是UBI文件系統,開發環境與不斷的編譯、查找資料、燒寫驗證,下載相關的軟件,占了很多的時間,不過不斷的克服困難,就能不斷的前進。路很長,但需要耐心不斷走下去。 開發環境為: CentOS6.5 Linux虛擬機。 硬件為:AT91SAM9X35EK NandFlash啟動(Bootstrap+Uboot+Linux Kernel+UBI根文件系統全燒寫在NandFlash中)。 使用較新的AT91Bootstrap與Uboot。 使用較新的穩定的Linux version 2.6.39(ATmel官方提供AT91SAM9X35E
[單片機]
基于AT91SAM9X35EK的嵌入式Linux+UBI根文件系統<font color='red'>移植</font>成功
小廣播
設計資源 培訓 開發板 精華推薦

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

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

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 琼中| 耒阳市| 视频| 深州市| 万全县| 宝应县| 大丰市| 灯塔市| 惠水县| 平湖市| 通江县| 清徐县| 梅州市| 德令哈市| 西华县| 前郭尔| 富民县| 喀喇| 庆安县| 万安县| 万盛区| 安西县| 视频| 肥乡县| 拜泉县| 南昌市| 沾化县| 丹江口市| 福泉市| 龙川县| 诏安县| 建瓯市| 满洲里市| 铜山县| 长春市| 灵武市| 晴隆县| 昭通市| 双桥区| 寿宁县| 元朗区|