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;
|
||
}
|
||
} |