|
发表于 2025-2-12 10:54:50
|
显示全部楼层
uint8_t buf[2048] = {0};
uint8_t buf_1[2048] = {0};
/* 正弦波数据,12bit,1个周期128个点, 0-4095之间变化 */
const uint16_t g_SineWave128[] = {
2047, 2147, 2248, 2347, 2446, 2544, 2641, 2737, 2830, 2922, 3012, 3099, 3184, 3266, 3346, 3422,
3494, 3564, 3629, 3691, 3749, 3803, 3852, 3897, 3938, 3974, 4006, 4033, 4055, 4072, 4084, 4092,
4094, 4092, 4084, 4072, 4055, 4033, 4006, 3974, 3938, 3897, 3852, 3803, 3749, 3691, 3629, 3564,
3494, 3422, 3346, 3266, 3184, 3099, 3012, 2922, 2830, 2737, 2641, 2544, 2446, 2347, 2248, 2147,
2047, 1947, 1846, 1747, 1648, 1550, 1453, 1357, 1264, 1172, 1082, 995, 910, 828, 748, 672,
600, 530, 465, 403, 345, 291, 242, 197, 156, 120, 88, 61, 39, 22, 10, 2,
0, 2, 10, 22, 39, 61, 88, 120, 156, 197, 242, 291, 345, 403, 465, 530,
600, 672, 748, 828, 910, 995, 1082, 1172, 1264, 1357, 1453, 1550, 1648, 1747, 1846, 1947,
};
const uint16_t g_SquareWave[] = {
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 0, 0, 0, 0, 0, 0, 0, 0,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 0, 0, 0, 0, 0, 0, 0, 0,
};
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MPU Configuration--------------------------------------------------------*/
MPU_Config();
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
// SEGGER_RTT_ConfigUpBuffer(0, "RTTUP", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP); /* ����ͨ��0����������*/
// SEGGER_RTT_ConfigDownBuffer(0, "RTTDOWN", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP); /* ����ͨ��0����������*/
// SEGGER_RTT_SetTerminal(0);
// SEGGER_RTT_printf(0, "SEGGER_RTT_GetKey \r\n");
SEGGER_RTT_ConfigUpBuffer(1, "JScope_u2", buf, 2048 , SEGGER_RTT_MODE_NO_BLOCK_SKIP);
SEGGER_RTT_ConfigUpBuffer(2, "JScope_u4", buf_1, 2048 , SEGGER_RTT_MODE_NO_BLOCK_SKIP);
SetLedInit();
//bsp_InitDWT(); /* 初始化DWT时钟周期计数器 */
bsp_InitTimer(); /* 初始化滴答定时器 */
// CAN1_Init(RxData,FDCAN_MODE_NORMAL,8,31,8,10); //初始化CAN控制器,环回模式,500KHz频率
bsp_InitCan1();
bsp_InitCan2();
//ConfigureCANClockToHSE();
unsigned int nCanClockFrequency = 0;
unsigned int nSystemClock = 0;
unsigned int nArbitrationBaudRate = 0;
unsigned int DataBaudRate = 0;
nCanClockFrequency = GetFDCANClockFrequency();
nArbitrationBaudRate = GetCANArbitrationBitrate(nCanClockFrequency);
DataBaudRate = GetCANDataBitrate(nCanClockFrequency);
nSystemClock = GetSystemClockFrequency();
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;
HAL_RCCEx_GetPeriphCLKConfig(&PeriphClkInitStruct);
// SEGGER_RTT_SetTerminal(0);
// SEGGER_RTT_printf(0 , "PLL2M: %d\n", PeriphClkInitStruct.PLL2.PLL2M);
// SEGGER_RTT_printf(0 , "PLL2N: %d\n", PeriphClkInitStruct.PLL2.PLL2N);
// SEGGER_RTT_printf(0 , "PLL2Q: %d\n", PeriphClkInitStruct.PLL2.PLL2Q);
// SEGGER_RTT_printf(0 , "nCanClockFrequency = %d \r\n", nCanClockFrequency);
// SEGGER_RTT_printf(0 , "nArbitrationBaudRate = %d \r\n", nArbitrationBaudRate);
// SEGGER_RTT_printf(0 , "DataBaudRate = %d \r\n", DataBaudRate);
// SEGGER_RTT_printf(0 , "nSystemClock = %d \r\n", nSystemClock);
unsigned char arrtest[8] = {1,2,3,4};
/* USER CODE END 2 */
bsp_StartAutoTimer(0, 2500); /* 启动1个500ms的自动重装的定时器 */
//SetPDORelativePositionSports(2 , -50000 , 1000);
if(SetAnyPointToZero(MOTOT_ID2) != 0)
{
// SEGGER_RTT_SetTerminal(0);
// SEGGER_RTT_printf(0 , "Set any zero is ok\n");
}
bsp_StartAutoTimer(1, 500);
bsp_StartAutoTimer(2, 100);
bsp_StartAutoTimer(3, 150);
static unsigned char nloop = 0;
uint32_t StandardFrameId;
unsigned short nTrapeSpeed = 25;
SetPDOSpeedModeSports(2 , 25);
static int i =0;
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
//can1_SendPacket(0X05 , arrtest , 4);
if(bsp_CheckTimer(3))
{
SEGGER_RTT_Write(1 , &g_SineWave128[(i++)%128] , 2);
}
if(bsp_CheckTimer(2))
{
SEGGER_RTT_Write(2 , &g_SquareWave[(i++) % sizeof(g_SquareWave) / sizeof(g_SquareWave[0])], 2);
}
}
} 硬汉哥,我用的HSS模式,想要输出2个波形一个正弦一个方波,但这样子实际出来只有一个正选波形,除非我把SEGGER_RTT_ConfigUpBuffer(1, "JScope_u2", buf, 2048 , SEGGER_RTT_MODE_NO_BLOCK_SKIP); 屏蔽掉 ,就显示方波,但也是只有一个方波[img][/img] |
-
|