123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747 |
- #include "stm32f1xx_STUperipheralRegisters.h"
- #include "stm32fxx_STUlib.h"
- #include "var.h"
- #define TEST_DATA_32B_0X55 0x55555555
- #define TEST_DATA_32B_0XAA 0xAAAAAAAA
- uint8_t GPIO_register_selftest(GPIO_TypeDef* GPIOx);
- uint8_t AFIO_register_selftest(AFIO_TypeDef* AFIOx);
- uint8_t CAN_register_selftest(CAN_TypeDef* CANx);
- uint8_t DMA_Channel_selftest(DMA_Channel_TypeDef* DMA);
- uint8_t ADC_register_selftest(ADC_TypeDef* ADCx);
- uint8_t TIM_register_selftest(TIM_TypeDef* TIMx);
- void STU_delay_us(uint16_t time)
- {
- uint16_t i=0;
- while(time--)
- {
- i=7; //72MHZ主频,1us
- while(i--) ;
- }
- }
- uint8_t STU_PeripheralRegistersTest(void)
- {
- //uint8_t result;
-
- /*********************** GPIO registers test*******************/
- __HAL_RCC_GPIOA_CLK_ENABLE();
- __HAL_RCC_GPIOB_CLK_ENABLE();
- __HAL_RCC_GPIOC_CLK_ENABLE();
- __HAL_RCC_GPIOD_CLK_ENABLE();
-
- if(GPIO_register_selftest(GPIOA) == ERROR )
- {
- return ERROR;
- }
- if(GPIO_register_selftest(GPIOB) == ERROR )
- {
- return ERROR;
- }
- if(GPIO_register_selftest(GPIOC) == ERROR )
- {
- return ERROR;
- }
- if(GPIO_register_selftest(GPIOD) == ERROR )
- {
- return ERROR;
- }
- __HAL_RCC_GPIOA_CLK_DISABLE();
- __HAL_RCC_GPIOB_CLK_DISABLE();
- __HAL_RCC_GPIOC_CLK_DISABLE();
- __HAL_RCC_GPIOD_CLK_DISABLE();
-
- AFIO_register_selftest(AFIO);
-
- /*********************** CAN registers test*******************/
- // __HAL_RCC_CAN1_CLK_ENABLE();
- // if(CAN_register_selftest(CAN1) == ERROR)
- // {
- // return ERROR;
- // }
- // __HAL_RCC_CAN1_CLK_DISABLE();
-
- /*********************** DMA registers test*******************/
- __HAL_RCC_DMA1_CLK_ENABLE();
- if(DMA_Channel_selftest(DMA1_Channel1) == ERROR)
- {
- return ERROR;
- }
- __HAL_RCC_DMA1_CLK_DISABLE();
-
- /*********************** ADC registers test*******************/
- __HAL_RCC_ADC1_CLK_ENABLE();
- __HAL_RCC_ADC2_CLK_ENABLE();
- if(ADC_register_selftest(ADC1) == ERROR)
- {
- return ERROR;
- }
- if(ADC_register_selftest(ADC2) == ERROR)
- {
- return ERROR;
- }
- __HAL_RCC_ADC1_CLK_DISABLE();
- __HAL_RCC_ADC2_CLK_DISABLE();
-
- /*********************** TIM registers test*******************/
- __HAL_RCC_TIM1_CLK_ENABLE();
- if(TIM_register_selftest(TIM1) == ERROR)
- {
- return ERROR;
- }
- __HAL_RCC_TIM1_CLK_DISABLE();
-
- return SUCCESS;
- }
- uint8_t GPIO_register_selftest(GPIO_TypeDef* GPIOx)
- {
- unsigned long val=0;
- // unsigned int uint_val=0;
- GPIO_TypeDef GPIO_tmp;
-
- /*备份寄存器的复位默认值*/
- GPIO_tmp.CRL = GPIOx->CRL;
- GPIO_tmp.CRH = GPIOx->CRH;
- //GPIO_tmp.IDR = GPIOx->IDR; //read only
- GPIO_tmp.ODR = GPIOx->ODR;
- //GPIO_tmp.BSRR = GPIOx->BSRR ; //write only
- //GPIO_tmp.BRR = GPIOx->BRR; //write only
- //GPIO_tmp.LCKR = GPIOx->LCKR; //lock register,don't test
-
- if(GPIOx != GPIOD)
- {
- //////////CRL //////////////
- GPIOx->CRL=TEST_DATA_32B_0X55;
- //GPIOx->CRL=0x55555554;
- val=GPIOx->CRL;
- if(val!=TEST_DATA_32B_0X55)
- {
- //FIT_testflag = 10;
- return (0);
- }
-
- GPIOx->CRL=TEST_DATA_32B_0XAA;
- val=GPIOx->CRL;
- if(val!=TEST_DATA_32B_0XAA)
- return (0);
- ///////////CRH/////////////////////
- GPIOx->CRH=TEST_DATA_32B_0X55;
- val=GPIOx->CRH;
- if(val!=TEST_DATA_32B_0X55)
- return (0);
- GPIOx->CRH=TEST_DATA_32B_0XAA;
- val=GPIOx->CRH;
- if(val!=TEST_DATA_32B_0XAA)
- return (0);
- ///////////ODR/////////////////////
- GPIOx->ODR=0x00005555;
- val=GPIOx->ODR;
- if((val& 0x0000FFFF)!=0x00005555)
- return (0);
- GPIOx->ODR=0x0000AAAA;
- val=GPIOx->ODR;
- if((val& 0x0000FFFF)!=0x0000AAAA)
- return (0);
- }
- else
- {
- //////////CRL //////////////
- GPIOx->CRL=(GPIO_tmp.CRL&0xFFFFF000)|0x00000555;
- val=GPIOx->CRL;
- if( (val&0x00000FFF) !=0x00000555 )
- {
- return (0);
- }
- GPIOx->CRL=(GPIO_tmp.CRL&0xFFFFF000)|0x00000AAA;
- val=GPIOx->CRL;
- if( (val&0x00000FFF) !=0x00000AAA )
- return (0);
- ///////////ODR/////////////////////
- GPIOx->ODR=(GPIO_tmp.ODR&0xFFFFFFF8)|0x00000007;
- val=GPIOx->ODR;
- if((val& 0x00000007)!=0x00000007)
- return (0);
- GPIOx->ODR=(GPIO_tmp.ODR&0xFFFFFFF8)|0x00000000;
- val=GPIOx->ODR;
- if((val& 0x00000007)!=0x00000000)
- return (0);
- }
- /*恢复寄存器的复位默认值*/
- GPIOx->CRL = GPIO_tmp.CRL;
- GPIOx->CRH = GPIO_tmp.CRH;
- GPIOx->ODR = GPIO_tmp.ODR;
-
- return (1);
- }
- uint8_t AFIO_register_selftest(AFIO_TypeDef* AFIOx)
- {
- uint32_t val=0;
- AFIO_TypeDef AFIO_tmp;
-
- /*备份寄存器的复位默认值*/
- AFIO_tmp.EVCR = AFIOx->EVCR;
- AFIO_tmp.MAPR = AFIOx->MAPR;
- AFIO_tmp.EXTICR[0] = AFIOx->EXTICR[0] ;
- AFIO_tmp.EXTICR[1] = AFIOx->EXTICR[1] ;
- AFIO_tmp.EXTICR[2] = AFIOx->EXTICR[2] ;
- AFIO_tmp.EXTICR[3] = AFIOx->EXTICR[3] ;
-
- //////////EVCR//////////////
- AFIOx->EVCR=0x00000055;
- val=AFIOx->EVCR;
- if(val!=0x00000055)
- return (0);
- AFIOx->EVCR=0x000000AA;
- val=AFIOx->EVCR;
- if(val!=0x000000AA)
- return (0);
- //////////MAPR //////////////
- AFIOx->MAPR=0x00005555;
- val=AFIOx->MAPR;
- if(val!=0x00005555)
- return (0);
- AFIOx->MAPR=0x0000AAAA;
- val=(AFIOx->MAPR)&0x0000AAAA;
- if(val!=0x0000AAAA)
- return (0);
- //////////EXTICR[0] //////////////
- AFIOx->EXTICR[0]=0x00005555;
- val=AFIOx->EXTICR[0];
- if(val!=0x00005555)
- return (0);
- AFIOx->EXTICR[0]=0x00002AAA;
- val=AFIOx->EXTICR[0];
- if(val!=0x00002AAA)
- return (0);
- //////////EXTICR[1] //////////////
- AFIOx->EXTICR[1]=0x00005555;
- val=AFIOx->EXTICR[1];
- if(val!=0x00005555)
- return (0);
- AFIOx->EXTICR[1]=0x00002AAA;
- val=AFIOx->EXTICR[1];
- if(val!=0x00002AAA)
- return (0);
- //////////EXTICR[2] //////////////
- AFIOx->EXTICR[2]=0x00005555;
- val=AFIOx->EXTICR[2];
- if(val!=0x00005555)
- return (0);
- AFIOx->EXTICR[2]=0x00002AAA;
- val=AFIOx->EXTICR[2];
- if(val!=0x00002AAA)
- return (0);
- //////////EXTICR[3] //////////////
- AFIOx->EXTICR[3]=0x00005555;
- val=AFIOx->EXTICR[3];
- if(val!=0x00005555)
- return (0);
- AFIOx->EXTICR[3]=0x00002AAA;
- val=AFIOx->EXTICR[3];
- if(val!=0x00002AAA)
- return (0);
-
- /*恢复寄存器的复位默认值*/
- AFIOx->EVCR = AFIO_tmp.EVCR;
- AFIOx->MAPR = AFIO_tmp.MAPR;
- AFIOx->EXTICR[0] = AFIO_tmp.EXTICR[0] ;
- AFIOx->EXTICR[1] = AFIO_tmp.EXTICR[1] ;
- AFIOx->EXTICR[2] = AFIO_tmp.EXTICR[2] ;
- AFIOx->EXTICR[3] = AFIO_tmp.EXTICR[3] ;
-
- return (1);
- }
- uint8_t CAN_register_selftest(CAN_TypeDef* CANx)
- {
- unsigned long val=0;
- //unsigned int uint_val=0;
- uint32_t tmp_CAN_IER,tmp_CAN_BTR; //tmp_CAN_MCR
- //tmp_CAN_MCR = CANx->MCR;
- tmp_CAN_IER = CANx->IER;
- // tmp_CAN_ESR = CANx->ESR;
- tmp_CAN_BTR = CANx->BTR;
-
- //////////MCR //////////////
- CANx->MCR=0x00000055;
- val=CANx->MCR;
- if(val!=0x00000055)
- return (0);
- CANx->MCR=0x000000A8;
- val=CANx->MCR;
- val = val & 0x000000A8;
- if(val!=0x000000A8)
- return (0);
-
- ///////////IER//////////////
- CANx->IER=0x00010555;
- val=CANx->IER;
- if(val!=0x00010555)
- return (0);
- CANx->IER=0x00028A2A;
- val=CANx->IER;
- if(val!=0x00028A2A)
- return (0);
- /////////////ESR//////////////
- // CANx->ESR=0x00000050;
- // val=CANx->ESR;
- // if(val!=0x00000050)
- // return (0);
- // CANx->ESR=0x00000020;
- // val=CANx->ESR;
- // if(val!=0x00000020)
- // return (0);
- ///////////BTR//////////////
- CANx->MCR=0x01;
- CANx->BTR=0x41550155;
- val=CANx->BTR;
- if(val!=0x41550155)
- return (0);
-
- CANx->BTR=0x822A02AA;
- val=CANx->BTR;
- if(val!=0x822A02AA)
- return (0);
-
- CANx->IER = tmp_CAN_IER;
- // CANx->ESR = tmp_CAN_ESR;
- CANx->BTR = tmp_CAN_BTR;
-
- CANx->MCR = 0x00008000; //复位MCR寄存器
-
- return (1);
- }
- uint8_t DMA_Channel_selftest(DMA_Channel_TypeDef* DMA_Channelx)
- {
- unsigned long val=0;
- //unsigned int uint_val=0;
- DMA_Channel_TypeDef DMA_Channelx_tmp;
-
- DMA_Channelx_tmp.CCR = DMA_Channelx->CCR;
- DMA_Channelx_tmp.CNDTR = DMA_Channelx->CNDTR;
- DMA_Channelx_tmp.CPAR = DMA_Channelx->CPAR;
- DMA_Channelx_tmp.CMAR = DMA_Channelx->CMAR;
-
- //////////CCR//////////////
- DMA_Channelx->CCR = 0x00000000;
- DMA_Channelx->CCR=0x00005555;
- val=DMA_Channelx->CCR;
- if(val!=0x00005555)
- return (0);
- DMA_Channelx->CCR = 0x00000000;
- DMA_Channelx->CCR=0x00002AAA;
- val=DMA_Channelx->CCR;
- if(val!=0x00002AAA)
- return (0);
- //////////CNDTR//////////////
- DMA_Channelx->CCR = 0x00000000;
- DMA_Channelx->CNDTR=0x00005555;
- STU_delay_us(5);
- val=DMA_Channelx->CNDTR;
- if(val!=0x00005555)
- return (0);
- DMA_Channelx->CNDTR=0x0000AAAA;
- STU_delay_us(5);
- val=DMA_Channelx->CNDTR;
- if(val!=0x0000AAAA)
- return (0);
- //////////CPAR//////////////
- DMA_Channelx->CPAR=TEST_DATA_32B_0X55;
- val=DMA_Channelx->CPAR;
- if(val!=TEST_DATA_32B_0X55)
- return (0);
- DMA_Channelx->CPAR=TEST_DATA_32B_0XAA;
- val=DMA_Channelx->CPAR;
- if(val!=TEST_DATA_32B_0XAA)
- return (0);
- //////////CMAR//////////////
- DMA_Channelx->CMAR=TEST_DATA_32B_0X55;
- val=DMA_Channelx->CMAR;
- if(val!=TEST_DATA_32B_0X55)
- return (0);
- DMA_Channelx->CMAR=TEST_DATA_32B_0XAA;
- val=DMA_Channelx->CMAR;
- if(val!=TEST_DATA_32B_0XAA)
- return (0);
-
- DMA_Channelx->CNDTR = DMA_Channelx_tmp.CNDTR;
- DMA_Channelx->CPAR = DMA_Channelx_tmp.CPAR;
- DMA_Channelx->CMAR = DMA_Channelx_tmp.CMAR;
- DMA_Channelx->CCR = DMA_Channelx_tmp.CCR;
-
- return (1);
- }
- uint8_t ADC_register_selftest(ADC_TypeDef* ADCx)
- {
- unsigned long val=0;
- //unsigned int uint_val=0;
- //////////CR1//////////////
- // ADCx->CR1=0x00000000;
- // val=ADCx->CR1;
- // if(val!=0x00000000)
- // return (0);
- if(ADCx==ADC1)
- {
- ADCx->CR1=0x00455555;
- val=ADCx->CR1;
- if(val!=0x00455555)
- return (0);
- ADCx->CR1=0x008AAAAA;
- val=ADCx->CR1;
- if(val!=0x008AAAAA)
- return (0);
- }
- if(ADCx==ADC2) //ADC2 16-19位是保留位
- {
- ADCx->CR1=0x00405555;
- val=ADCx->CR1;
- if(val!=0x00405555)
- return (0);
- ADCx->CR1=0x0080AAAA;
- val=ADCx->CR1;
- if(val!=0x0080AAAA)
- return (0);
- }
- // //////////CR2//////////////
- // ADCx->CR2=0x00145101;
- // val=ADCx->CR2;
- // if(val!=0x00145101)
- // return (0);
- // ADCx->CR2=0x008AA80A;
- // val=ADCx->CR2;
- // if(val!=0x008AA80A)
- // return (0);
- //////////SMPR1//////////////
- // ADCx->SMPR1=0x00555555;
- // val=ADCx->SMPR1;
- // if(val!=0x00555555)
- // return (0);
- // ADCx->SMPR1=0x00AAAAAA;
- // val=ADCx->SMPR1;
- // if(val!=0x00AAAAAA)
- // return (0);
- // //////////SMPR2//////////////
- // ADCx->SMPR2=0x15555555;
- // val=ADCx->SMPR2;
- // if(val!=0x15555555)
- // return (0);
- // ADCx->SMPR2=0x2AAAAAAA;
- // val=ADCx->SMPR2;
- // if(val!=0x2AAAAAAA)
- // return (0);
- //////////JOFR1 //////////////
- ADCx->JOFR1=0x00000555;
- val=ADCx->JOFR1;
- if(val!=0x00000555)
- return (0);
- ADCx->JOFR1=0x00000AAA;
- val=ADCx->JOFR1;
- if(val!=0x00000AAA)
- return (0);
- //////////JOFR2 //////////////
- ADCx->JOFR2=0x00000555;
- val=ADCx->JOFR2;
- if(val!=0x00000555)
- return (0);
- ADCx->JOFR2=0x00000AAA;
- val=ADCx->JOFR2;
- if(val!=0x00000AAA)
- return (0);
- //////////JOFR3 //////////////
- ADCx->JOFR3=0x00000555;
- val=ADCx->JOFR3;
- if(val!=0x00000555)
- return (0);
- ADCx->JOFR3=0x00000AAA;
- val=ADCx->JOFR3;
- if(val!=0x00000AAA)
- return (0);
- //////////JOFR4 //////////////
- ADCx->JOFR4=0x00000555;
- val=ADCx->JOFR4;
- if(val!=0x00000555)
- return (0);
- ADCx->JOFR4=0x00000AAA;
- val=ADCx->JOFR4;
- if(val!=0x00000AAA)
- return (0);
- //////////HTR //////////////
- ADCx->HTR=0x00000555;
- val=ADCx->HTR;
- if(val!=0x00000555)
- return (0);
- ADCx->HTR=0x00000AAA;
- val=ADCx->HTR;
- if(val!=0x00000AAA)
- return (0);
- //////////LTR //////////////
- ADCx->LTR=0x00000555;
- val=ADCx->LTR;
- if(val!=0x00000555)
- return (0);
- ADCx->LTR=0x00000AAA;
- val=ADCx->LTR;
- if(val!=0x00000AAA)
- return (0);
- //////////SQR1 //////////////
- ADCx->SQR1=0x00555555;
- val=ADCx->SQR1;
- if(val!=0x00555555)
- return (0);
- ADCx->SQR1=0x00AAAAAA;
- val=ADCx->SQR1;
- if(val!=0x00AAAAAA)
- return (0);
- //////////SQR2//////////////
- ADCx->SQR2=0x15555555;
- val=ADCx->SQR2;
- if(val!=0x15555555)
- return (0);
- ADCx->SQR2=0x2AAAAAAA;
- val=ADCx->SQR2;
- if(val!=0x2AAAAAAA)
- return (0);
- //////////SQR3//////////////
- ADCx->SQR3=0x15555555;
- val=ADCx->SQR3;
- if(val!=0x15555555)
- return (0);
- ADCx->SQR3=0x2AAAAAAA;
- val=ADCx->SQR3;
- if(val!=0x2AAAAAAA)
- return (0);
- //////////JSQR//////////////
- ADCx->JSQR=0x00155555;
- val=ADCx->JSQR;
- if(val!=0x00155555)
- return (0);
- ADCx->JSQR=0x002AAAAA;
- val=ADCx->JSQR;
- if(val!=0x002AAAAA)
- return (0);
- ADCx->CR1=0x00000000;
- // ADCx->CR2=0x00000000;
- ADCx->SMPR1=0x00000000;
- ADCx->SMPR2=0x00000000;
- ADCx->JOFR1=0x00000000;
- ADCx->JOFR2=0x00000000;
- ADCx->JOFR3=0x00000000;
- ADCx->JOFR4=0x00000000;
- ADCx->HTR =0x00000fff;
- ADCx->LTR =0x00000000;
- ADCx->SQR1 =0x00000000;
- ADCx->SQR2 =0x00000000;
- ADCx->SQR3 =0x00000000;
- ADCx->JSQR =0x00000000;
-
- return (1);
- }
- uint8_t TIM_register_selftest(TIM_TypeDef* TIMx)
- {
- uint16_t val=0;
- // unsigned int uint_val=0;
- //////////CR1//////////////
- TIMx->CR1=0x0105;
- val=TIMx->CR1;
- if(val!=0x0105)
- return (0);
- TIMx->CR1=0x028A;
- val=TIMx->CR1;
- if(val!=0x028A)
- return (0);
- TIMx->CR1=0x0000;
- //////////CR2//////////////
- TIMx->CR2=0x5555;
- val=TIMx->CR2;
- if(val!=0x5555)
- return (0);
- TIMx->CR2=0x2AA8;
- val=TIMx->CR2;
- if(val!=0x2AA8)
- return (0);
- TIMx->CR2=0x0000;
- //////////SMCR//////////////
- TIMx->SMCR=0x5555;
- val=TIMx->SMCR;
- if(val!=0x5555)
- return (0);
- TIMx->SMCR=0xAAA2;
- val=TIMx->SMCR;
- if(val!=0xAAA2)
- return (0);
- TIMx->SMCR=0x0000;
- //////////DIER//////////////
- TIMx->DIER=0x5555;
- val=TIMx->DIER;
- if(val!=0x5555)
- return (0);
- TIMx->DIER=0x2AAA;
- val=TIMx->DIER;
- if(val!=0x2AAA)
- return (0);
- TIMx->DIER=0x0000;
- //////////CCMR1//////////////
- TIMx->CCMR1=0x5555;
- val=TIMx->CCMR1;
- if(val!=0x5555)
- return (0);
- TIMx->CCMR1=0xAAAA;
- val=TIMx->CCMR1;
- if(val!=0xAAAA)
- return (0);
- TIMx->CCMR1=0x0000;
- //////////CCMR2//////////////
- TIMx->CCMR2=0x5555;
- val=TIMx->CCMR2;
- if(val!=0x5555)
- return (0);
- TIMx->CCMR2=0xAAAA;
- val=TIMx->CCMR2;
- if(val!=0xAAAA)
- return (0);
- TIMx->CCMR2=0x0000;
- //////////CCER//////////////
- TIMx->CCER=0x1555;
- val=TIMx->CCER;
- if(val!=0x1555)
- return (0);
- TIMx->CCER=0x2AAA;
- val=TIMx->CCER;
- if(val!=0x2AAA)
- return (0);
- TIMx->CCER=0x0000;
- //////////CNT//////////////
- TIMx->CNT=0x5555;
- val=TIMx->CNT;
- if(val!=0x5555)
- return (0);
- TIMx->CNT=0xAAAA;
- val=TIMx->CNT;
- if(val!=0xAAAA)
- return (0);
- TIMx->CNT=0x0000;
- //////////PSC//////////////
- TIMx->PSC=0x5555;
- val=TIMx->PSC;
- if(val!=0x5555)
- return (0);
- TIMx->PSC=0xAAAA;
- val=TIMx->PSC;
- if(val!=0xAAAA)
- return (0);
- TIMx->PSC=0x0000;
- //////////ARR//////////////
- TIMx->ARR=0x5555;
- val=TIMx->ARR;
- if(val!=0x5555)
- return (0);
- TIMx->ARR=0xAAAA;
- val=TIMx->ARR;
- if(val!=0xAAAA)
- return (0);
- TIMx->ARR=0x0000;
- //////////RCR//////////////
- TIMx->RCR=0x0055;
- val=TIMx->RCR;
- if(val!=0x0055)
- return (0);
- TIMx->RCR=0x00AA;
- val=TIMx->RCR;
- if(val!=0x00AA)
- return (0);
- TIMx->RCR=0x0000;
- //////////CCR1//////////////
- TIMx->CCR1=0x5555;
- val=TIMx->CCR1;
- if(val!=0x5555)
- return (0);
- TIMx->CCR1=0xAAAA;
- val=TIMx->CCR1;
- if(val!=0xAAAA)
- return (0);
- TIMx->CCR1=0x0000;
- //////////CCR2//////////////
- TIMx->CCR2=0x5555;
- val=TIMx->CCR2;
- if(val!=0x5555)
- return (0);
- TIMx->CCR2=0xAAAA;
- val=TIMx->CCR2;
- if(val!=0xAAAA)
- return (0);
- TIMx->CCR2=0x0000;
- //////////CCR3//////////////
- TIMx->CCR3=0x5555;
- val=TIMx->CCR3;
- if(val!=0x5555)
- return (0);
- TIMx->CCR3=0xAAAA;
- val=TIMx->CCR3;
- if(val!=0xAAAA)
- return (0);
- TIMx->CCR3=0x0000;
- //////////CCR4//////////////
- TIMx->CCR4=0x5555;
- val=TIMx->CCR4;
- if(val!=0x5555)
- return (0);
- TIMx->CCR4=0xAAAA;
- val=TIMx->CCR4;
- if(val!=0xAAAA)
- return (0);
- TIMx->CCR4=0x0000;
- ////////////BDTR//////////////
- // TIMx->BDTR=0x5455;
- // val=TIMx->BDTR;
- // if(val!=0x5455)
- // return (12);
- // TIMx->BDTR=0xA8AA;
- // val=TIMx->BDTR;
- // if(val!=0xA8AA)
- // return (12);
- //////////DCR//////////////
- TIMx->DCR=0x1515;
- val=TIMx->DCR;
- if(val!=0x1515)
- return (0);
- TIMx->DCR=0x0A0A;
- val=TIMx->DCR;
- if(val!=0x0A0A)
- return (0);
- TIMx->DCR=0x0000;
-
- TIMx->SR = 0x0000;
-
- return (1);
- }
|