#include "./SYSTEM/sys/sys.h" #include "./SYSTEM/usart/usart.h" #include "./SYSTEM/delay/delay.h" #include "./SYSTEM/spi1/spi1.h" #include "./BSP/ADS1278/ads1278.h" #include "./SYSTEM/pwm/pwm.h" int Flag = 0; void HAL_delay_us(__IO uint32_t delay); int main(void) { HAL_Init(); /* 初始化HAL库 */ sys_stm32_clock_init(336, 8, 2, 7); /* 设置时钟,168Mhz */ delay_init(168); /* 延时初始化 */ usart_init(115200); /* 串口初始化为115200 */ MX_SPI1_Init(); /* spi1初始化 */ ADS1278_Init(); /* ADS1278初始化 */ gtim_timx_pwm_chy_init(21 - 1, 10 - 1); printf("\r\n您发送的消息为:\r\n"); /* 延时100ms后拉低SYNC 1ms后置位,复位ADS1278*/ // delay_ms(100); // HAL_GPIO_WritePin(GPIOG, SYNC_Pin, GPIO_PIN_RESET); // delay_ms(1); // HAL_GPIO_WritePin(GPIOG, SYNC_Pin, GPIO_PIN_SET); HAL_NVIC_EnableIRQ(EXTI15_10_IRQn); printf("\r\n您发送的消息为:\r\n"); while(1) { // HAL_GPIO_TogglePin(CLK_GPIO_Port,CLK_Pin); // HAL_GPIO_WritePin(GPIOA, CLK_Pin, GPIO_PIN_SET); // HAL_delay_us(10); // if(Flag == 1){ // HAL_GPIO_WritePin(SYNC_GPIO_Port, SYNC_Pin, GPIO_PIN_RESET); // Flag = 2; // } // HAL_GPIO_WritePin(GPIOA, CLK_Pin, GPIO_PIN_RESET); // HAL_delay_us(10); // if(Flag==2){ // HAL_GPIO_WritePin(GPIOA, CLK_Pin, GPIO_PIN_SET); // HAL_delay_us(10); // HAL_GPIO_WritePin(GPIOA, CLK_Pin, GPIO_PIN_RESET); // HAL_delay_us(10); // HAL_GPIO_WritePin(GPIOA, CLK_Pin, GPIO_PIN_SET); // HAL_delay_us(10); // HAL_GPIO_WritePin(GPIOA, CLK_Pin, GPIO_PIN_RESET); // HAL_delay_us(10); // HAL_GPIO_WritePin(SYNC_GPIO_Port, SYNC_Pin, GPIO_PIN_SET); // HAL_delay_us(9); // Flag = 3; // } } } #define CPU_FREQUENCY_MHZ 168 // STM32时钟主频 void HAL_delay_us(__IO uint32_t delay) { int last, curr, val; int temp; while (delay != 0) { temp = delay > 900 ? 900 : delay; last = SysTick->VAL; curr = last - CPU_FREQUENCY_MHZ * temp; if (curr >= 0) { do { val = SysTick->VAL; } while ((val < last) && (val >= curr)); } else { curr += CPU_FREQUENCY_MHZ * 1000; do { val = SysTick->VAL; } while ((val <= last) || (val > curr)); } delay -= temp; } }