找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5150|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

馬上要嵌入式上機考試了,分享一些整理了模塊初始化函數(shù)使用說明

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:72519 發(fā)表于 2015-1-23 17:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
前言:采用模塊編程,每個模塊都有.H 和.c 文件。  所以編寫前加入到自己的工程里面。
1.問題:配置一個USART,往往涉及到引腳,DMA通道,中斷向量,接收發(fā)送的配置,RCC外設(shè)時鐘的配置?
為了方便配置,我將這些 配置整合到了這3個函數(shù)。
       配置usart1使用波特率57600 并且使用DMA,只要這三句
SZ_STM32_COMInit(0,57600);
    __SZ_STM32_USART_DMAInit(0);
        __SZ_STM32_USART_NVICInit(0);
如果要切換USART2 或usart3  只要將0改成1或2即可
   
發(fā)送利用DMA發(fā)送數(shù)據(jù)調(diào)用這樣的函數(shù)即可
       /**-------------------------------------------------------  *
@函數(shù)名 __SZ_STM32_USART_DMAsenddata()  *
@功能   面向用戶的STM32的USART的DMA初始化函數(shù)  *
@參數(shù)1  COM1  對應(yīng)STM32的USART1 對應(yīng)開啟中斷  *      
              COM2  對應(yīng)STM32的USART2 對應(yīng)開啟中斷  *      
               COM3  對應(yīng)STM32的USART3 對應(yīng)開啟中斷  *
   @參數(shù)2  Data  發(fā)送的字符串?dāng)?shù)據(jù)  * @參數(shù)3  Size  發(fā)送的字符串大小  * @返回值 無***
------------------------------------------------------*/
void __SZ_STM32_USART_DMAsenddata(COM_TypeDef COM,unsigned char Data[],unsigned char Size);

接收利用USART1中斷接收數(shù)據(jù)
USART1_IRQHandler(void)  
{
  if(USART_GetITStatus(USART1, USART_IT_IDLE) != RESET)  //總線空閑中斷
{
                USART_ReceiveData(USART1);             //讀DR,只有讀過一次,才能真正清除標(biāo)志
                         USART_ClearFlag(USART1,USART_IT_IDLE); //讀SR其實就是清除標(biāo)志
                          //添加用戶的處理程序
}
            __SZ_STM32_USART_DMAsreceivedata(1);
}
   
2.問題:ADC1單通道和多連續(xù)通道的DMA配置整合?
配置一個ADC,往往涉及到引腳,DMA通道,中斷向量,接收發(fā)送的配置,RCC外設(shè)時鐘的配置?
只要一個函數(shù)
void SZ_STM32_ADC_Configuration(unsigned int l_ucchannelxx, u8 ADC1_SampleTime)
2個參數(shù),一個通道,一個轉(zhuǎn)化速度,就能配置成功
例如:
SZ_STM32_ADC_Configuration( ADC1_CHANNEL_7 ,ADC_SampleTime_13Cycles5):
配置了開啟通道七,ADC_SampleTime_13Cycles5
由于開啟的是DMA的它采回來的值是自動放在數(shù)組里面的;
ADCConvertedValue[17];  里面。  
如果是單通道則放在數(shù)組的第一個如果是多通道則按照通道的順序依次放在數(shù)組里面;

3.問題:STM32  DA 的配置?
DA配置就2個通道,而且GPIO只要設(shè)置外設(shè)時鐘即可。
為了對付考試,所以調(diào)用
  DA_init();
就默認(rèn)都開啟
DA_addr=(uint32_t)DAC_BASE+0x20;/
DA_addr1=(uint32_t)DAC_BASE+0x08;
DA_addr2=(uint32_t)DAC_BASE+0x14;
然后對這兩個寄存器寫值就可以輸出DA了。


4.還有一些 LED 和按鍵的  參考神州三號的編程方式   用起來也比較方便

,需要的請自己下載。 0-stm32外設(shè)配置模塊函數(shù)積累by,jobszf.zip (40.26 KB, 下載次數(shù): 16)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表