久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
ads129x的stm32代碼
[打印本頁]
作者:
becausetyet
時間:
2020-9-29 09:54
標題:
ads129x的stm32代碼
2020電賽ads1292x模塊stm32代碼
main.c
為工程的主程序文件夾
stm32f10x_conf.h
參數設置文件,起到應用和庫之間界面的作用
用戶使用前必須自己修改該文件
也可以修改外部晶振的參數
也可以是用該文件在編譯前使能Debug或者Release模式
由不同的define語句組成
stm32f10x_it.c
外設中斷函數文件
用戶可以加入自己的中斷程序代碼
對于指向同一個中斷向量的多個不同中斷請求,可以利用函數通過判斷外設的中斷標志位來確定準確的中斷源
庫函數提供了這些函數的名稱
stm3210x_it.h
該頭文件包含了所有中斷處理程序的原型。
單片機源程序如下:
/*ADS1292R驅動程序*/
#include"ADS1292R.H"
/**初始化ADS1292R**/
void ADS_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
SPI_InitTypeDef SPI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
/*ADS1292用到的IO口初始化*/
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
GPIO_InitStructure.GPIO_Pin = ADS_PWDN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽輸出
GPIO_Init(ADS_PWDN_G, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
GPIO_InitStructure.GPIO_Pin = ADS_GPIO2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//復用推挽輸出
GPIO_Init(ADS_GPIO2_G, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
GPIO_InitStructure.GPIO_Pin = ADS_DRDY;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入
GPIO_Init(ADS_DRDY_G, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
GPIO_InitStructure.GPIO_Pin = ADS_CS;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽輸出
GPIO_Init(ADS_CS_G, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
GPIO_InitStructure.GPIO_Pin = ADS_SCLK;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//復用推挽輸出
GPIO_Init(ADS_SCLK_G, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
GPIO_InitStructure.GPIO_Pin = ADS_DOUT;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入
GPIO_Init(ADS_DOUT_G, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
GPIO_InitStructure.GPIO_Pin = ADS_DIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//復用推挽輸出
GPIO_Init(ADS_DIN_G, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
GPIO_InitStructure.GPIO_Pin = ADS_START;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽輸出
GPIO_Init(ADS_START_G, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高輸出速率50MHz
GPIO_InitStructure.GPIO_Pin = ADS_GPIO1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//復用推挽輸出
GPIO_Init(ADS_GPIO1_G, &GPIO_InitStructure);
/*SPI接口初始化*/
SPI_Cmd(SPI1,DISABLE);
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //雙線雙向全雙工
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;//SPI主模式
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;//8bit數據
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;//CLK空閑時為高電平
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;//數據捕獲于第二個時鐘沿
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;//片選用軟件控制
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;//SPI頻率
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;//高位在前
SPI_InitStructure.SPI_CRCPolynomial = 7;//crc7,stm32spi帶硬件ecc
SPI_Init(SPI1, &SPI_InitStructure);
SPI_Cmd(SPI1,ENABLE);
/*DRDY中斷接收初始化
NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;//選擇中斷通道3
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//搶占式中斷優先級設置為1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;//響應式中斷優先級設置為1
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能中斷
NVIC_Init(&NVIC_InitStructure);
EXTI_ClearITPendingBit(EXTI_Line3);//清除中斷標志
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource3);//選擇管教
EXTI_InitStructure.EXTI_Line = EXTI_Line3; //選擇中斷線路3
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //設置為中斷請求,非事件請求
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //Falling設置中斷觸發方式為下降沿觸發
EXTI_InitStructure.EXTI_LineCmd = ENABLE;//外部中斷使能
EXTI_Init(&EXTI_InitStructure);*/
}
/**ADS1292R上電復位 **/
void ADS_PowerOnInit(void)
{ unsigned char sj[9];
ADS_START_H;
ADS_CS_H;
ADS_PWDN_L;//進入掉電模式
delay_ms(1000);
ADS_PWDN_H;//退出掉電模式
delay_ms(1000);//等待穩定
ADS_PWDN_L;//發出復位脈沖
delay_us(10);
ADS_PWDN_H;
delay_ms(1000);//等待穩定,可以開始使用ADS1292R
ADS_START_L;
ADS_CS_L;
ADS_SPI(SDATAC);//發送停止連續讀取數據命令
ADS_REG(WREG|CONFIG2,0XA0); //使用內部參考電壓
delay_ms(10);//等待內部參考電壓穩定
ADS_REG(WREG|CONFIG1,0X02); //設置轉換速率為500SPS
ADS_REG(WREG|CH1SET,0X01); //設置通道1為短路
ADS_REG(WREG|CH2SET,0X01); //設置通道2為短路
sj[1]=ADS_REG(RREG|CONFIG1,0X00);
sj[2]=ADS_REG(RREG|CH1SET,0X00);
sj[3]=ADS_REG(RREG|CH2SET,0X00);
printf("%X ",sj[1]);
printf("%X ",sj[2]);
printf("%X \n",sj[3]);
/* ADS_SPI(RDATAC);//回到連續讀取數據模式,檢測噪聲數據
ADS_START_H;//啟動轉換
while(GPIO_ReadInputDataBit(ADS_DRDY_G,ADS_DRDY)==SET);
ADS_Read(sj);
ADS_START_L;
ADS_SPI(SDATAC);
ADS_REG(WREG|CONFIG2,0XA0);
ADS_REG(WREG|CH1SET,0X80);
ADS_REG(WREG|CH2SET,0X00);
ADS_SPI(RDATAC);
ADS_START_H; */
}
/**對ADS1292R內部寄存器進行操作 **/
unsigned char ADS_REG(unsigned char com,unsigned data)
{
unsigned char i;
for(i=0;i<45;i++);
ADS_SPI(com);
for(i=0;i<45;i++);
ADS_SPI(0X00);
for(i=0;i<45;i++);
if((com&0x20)==0x20)//判斷是否為讀寄存器指令
{ ADS_SPI(0X00);
for(i=0;i<45;i++);
}
return (ADS_SPI(data));
}
/**通過SPI總線與ADS1292R通信**/
unsigned char ADS_SPI(unsigned char com)
{
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);//檢測發送寄存器是否為空,上一個數據發送完成
SPI_I2S_SendData(SPI1, com);//發送數據
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);//檢測接收標志是否非空,發送完成
return (SPI_I2S_ReceiveData(SPI1)); //返回接收到的數據
}
/*讀取72位的數據1100+LOFF_STAT[4:0]+GPIO[1:0]+13個0+2CHx24位,共9字節*/
void ADS_Read(unsigned char *data)
{ unsigned char i;
for(i=0;i<9;i++)
{ *data=ADS_SPI(0X00);
data++;
}
}
復制代碼
51hei.png
(5.15 KB, 下載次數: 70)
下載附件
2020-9-29 16:11 上傳
所有資料51hei提供下載:
ADS1292R.zip
(10.91 KB, 下載次數: 34)
2020-9-29 09:53 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
plj213
時間:
2021-8-2 13:23
謝謝分享,正在學習這個芯片。
作者:
1377468831
時間:
2022-3-7 10:33
請問main.c文件直接運行嗎
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产精品久久久久久婷婷天堂
|
色婷婷影院
|
精品一区二区三区在线观看
|
国产亚洲精品美女久久久久久久久久
|
香蕉大人久久国产成人av
|
羞羞在线观看视频
|
夜久久
|
综合久久久
|
欧美一级片在线观看
|
国产探花
|
久草视频在线播放
|
国产免费播放视频
|
国产精品久久久久久久久免费相片
|
日日天天
|
欧美福利在线
|
围产精品久久久久久久
|
激情久久网
|
国产视频黄色
|
亚洲精品第一
|
九热在线
|
亚洲精品久久久久久一区二区
|
国产美女一区二区
|
国内精品久久精品
|
亚洲精品一区二区三区
|
日韩在线观看一区二区三区
|
av在线一区二区三区
|
午夜精品久久久久久久星辰影院
|
亚洲精品一区二区网址
|
伊人网国产
|
国产乱码精品一区二区三区中文
|
成人精品
|
91精品在线看
|
久久精品视频一区二区
|
在线观看成年人视频
|
日一日操一操
|
99国产精品视频免费观看一公开
|
综合二区
|
久久www免费视频
|
国产99视频精品免费播放照片
|
男女视频91
|
亚洲一区二区三区国产
|