88 lines
2.7 KiB
C
88 lines
2.7 KiB
C
![]() |
#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;
|
|||
|
}
|
|||
|
}
|