This repository has been archived on 2025-04-28. You can view files and clone it, but cannot push or open issues or pull requests.
CMS3in1/1.Cabin/4.MISC/ADS1278/User/main.c

88 lines
2.7 KiB
C
Raw Normal View History

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