备份,两路并口转16路串口代码编写完成
This commit is contained in:
parent
4f07311ac3
commit
89b05b1b74
|
@ -58,23 +58,83 @@ void Error_Handler(void);
|
|||
/* USER CODE END EFP */
|
||||
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
#define DAC7_CS_Pin GPIO_PIN_2
|
||||
#define DAC7_CS_GPIO_Port GPIOE
|
||||
#define DAC8_CS_Pin GPIO_PIN_3
|
||||
#define DAC8_CS_GPIO_Port GPIOE
|
||||
#define DAC9_CS_Pin GPIO_PIN_4
|
||||
#define DAC9_CS_GPIO_Port GPIOE
|
||||
#define PE5_LED_Pin GPIO_PIN_5
|
||||
#define PE5_LED_GPIO_Port GPIOE
|
||||
#define HART11_RTS_Pin GPIO_PIN_6
|
||||
#define HART11_RTS_GPIO_Port GPIOF
|
||||
#define HART10_RTS_Pin GPIO_PIN_8
|
||||
#define HART10_RTS_GPIO_Port GPIOF
|
||||
#define HART_CLK_Pin GPIO_PIN_3
|
||||
#define HART_CLK_GPIO_Port GPIOA
|
||||
#define HART_ALL_RST_Pin GPIO_PIN_4
|
||||
#define HART_ALL_RST_GPIO_Port GPIOA
|
||||
#define CH438_1_AMOD_Pin GPIO_PIN_14
|
||||
#define CH438_1_AMOD_GPIO_Port GPIOF
|
||||
#define HART9_RTS_Pin GPIO_PIN_0
|
||||
#define HART9_RTS_GPIO_Port GPIOB
|
||||
#define CH438_AMOD_Pin GPIO_PIN_14
|
||||
#define CH438_AMOD_GPIO_Port GPIOF
|
||||
#define HART8_RTS_Pin GPIO_PIN_0
|
||||
#define HART8_RTS_GPIO_Port GPIOG
|
||||
#define HART7_RTS_Pin GPIO_PIN_11
|
||||
#define HART7_RTS_GPIO_Port GPIOE
|
||||
#define HART6_RTS_Pin GPIO_PIN_13
|
||||
#define HART6_RTS_GPIO_Port GPIOE
|
||||
#define HART5_RTS_Pin GPIO_PIN_8
|
||||
#define HART5_RTS_GPIO_Port GPIOD
|
||||
#define HART4_RTS_Pin GPIO_PIN_10
|
||||
#define HART4_RTS_GPIO_Port GPIOD
|
||||
#define HART3_RTS_Pin GPIO_PIN_12
|
||||
#define HART3_RTS_GPIO_Port GPIOD
|
||||
#define HART2_RTS_Pin GPIO_PIN_2
|
||||
#define HART2_RTS_GPIO_Port GPIOG
|
||||
#define HART1_RTS_Pin GPIO_PIN_4
|
||||
#define HART1_RTS_GPIO_Port GPIOG
|
||||
#define HART16_RTS_Pin GPIO_PIN_6
|
||||
#define HART16_RTS_GPIO_Port GPIOG
|
||||
#define HART15_RTS_Pin GPIO_PIN_9
|
||||
#define HART15_RTS_GPIO_Port GPIOA
|
||||
#define HART14_RTS_Pin GPIO_PIN_11
|
||||
#define HART14_RTS_GPIO_Port GPIOA
|
||||
#define HART12_RTS_Pin GPIO_PIN_15
|
||||
#define HART12_RTS_GPIO_Port GPIOA
|
||||
#define HART13_RTS_Pin GPIO_PIN_11
|
||||
#define HART13_RTS_GPIO_Port GPIOC
|
||||
#define CH438_INT_Pin GPIO_PIN_2
|
||||
#define CH438_INT_GPIO_Port GPIOD
|
||||
#define CH438_INT_EXTI_IRQn EXTI2_IRQn
|
||||
#define CH438_1_RST_Pin GPIO_PIN_3
|
||||
#define CH438_1_RST_GPIO_Port GPIOD
|
||||
#define CH438_RST_Pin GPIO_PIN_3
|
||||
#define CH438_RST_GPIO_Port GPIOD
|
||||
#define DAC10_CS_Pin GPIO_PIN_6
|
||||
#define DAC10_CS_GPIO_Port GPIOD
|
||||
#define DAC11_CS_Pin GPIO_PIN_10
|
||||
#define DAC11_CS_GPIO_Port GPIOG
|
||||
#define DAC12_CS_Pin GPIO_PIN_11
|
||||
#define DAC12_CS_GPIO_Port GPIOG
|
||||
#define DAC13_CS_Pin GPIO_PIN_12
|
||||
#define DAC13_CS_GPIO_Port GPIOG
|
||||
#define DAC14_CS_Pin GPIO_PIN_13
|
||||
#define DAC14_CS_GPIO_Port GPIOG
|
||||
#define DAC15_CS_Pin GPIO_PIN_14
|
||||
#define DAC15_CS_GPIO_Port GPIOG
|
||||
#define DAC16_CS_Pin GPIO_PIN_15
|
||||
#define DAC16_CS_GPIO_Port GPIOG
|
||||
#define DAC1_CS_Pin GPIO_PIN_6
|
||||
#define DAC1_CS_GPIO_Port GPIOB
|
||||
#define DAC2_CS_Pin GPIO_PIN_7
|
||||
#define DAC2_CS_GPIO_Port GPIOB
|
||||
#define DAC3_CS_Pin GPIO_PIN_8
|
||||
#define DAC3_CS_GPIO_Port GPIOB
|
||||
#define DAC4_CS_Pin GPIO_PIN_9
|
||||
#define DAC4_CS_GPIO_Port GPIOB
|
||||
#define DAC5_CS_Pin GPIO_PIN_0
|
||||
#define DAC5_CS_GPIO_Port GPIOE
|
||||
#define DAC6_CS_Pin GPIO_PIN_1
|
||||
#define DAC6_CS_GPIO_Port GPIOE
|
||||
|
||||
/* USER CODE BEGIN Private defines */
|
||||
#define TRUE 0
|
||||
|
|
|
@ -57,15 +57,15 @@ osThreadId ch438_taskHandle;
|
|||
|
||||
/* USER CODE END FunctionPrototypes */
|
||||
|
||||
void start_lwip_task(void const * argument);
|
||||
void start_dac_task(void const * argument);
|
||||
void start_ch438_task(void const * argument);
|
||||
void start_lwip_task(void const *argument);
|
||||
void start_dac_task(void const *argument);
|
||||
void start_ch438_task(void const *argument);
|
||||
|
||||
extern void MX_LWIP_Init(void);
|
||||
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
|
||||
|
||||
/* GetIdleTaskMemory prototype (linked to static allocation support) */
|
||||
void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize );
|
||||
void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize);
|
||||
|
||||
/* USER CODE BEGIN GET_IDLE_TASK_MEMORY */
|
||||
static StaticTask_t xIdleTaskTCBBuffer;
|
||||
|
@ -85,7 +85,8 @@ void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer, StackTyp
|
|||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void MX_FREERTOS_Init(void) {
|
||||
void MX_FREERTOS_Init(void)
|
||||
{
|
||||
/* USER CODE BEGIN Init */
|
||||
|
||||
/* USER CODE END Init */
|
||||
|
@ -122,7 +123,6 @@ void MX_FREERTOS_Init(void) {
|
|||
/* USER CODE BEGIN RTOS_THREADS */
|
||||
/* add threads, ... */
|
||||
/* USER CODE END RTOS_THREADS */
|
||||
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN Header_start_lwip_task */
|
||||
|
@ -132,7 +132,7 @@ void MX_FREERTOS_Init(void) {
|
|||
* @retval None
|
||||
*/
|
||||
/* USER CODE END Header_start_lwip_task */
|
||||
void start_lwip_task(void const * argument)
|
||||
void start_lwip_task(void const *argument)
|
||||
{
|
||||
/* init code for LWIP */
|
||||
MX_LWIP_Init();
|
||||
|
@ -140,7 +140,7 @@ void start_lwip_task(void const * argument)
|
|||
/* Infinite loop */
|
||||
for (;;)
|
||||
{
|
||||
osDelay(10);
|
||||
osThreadTerminate(NULL);
|
||||
}
|
||||
/* USER CODE END start_lwip_task */
|
||||
}
|
||||
|
@ -152,15 +152,19 @@ void start_lwip_task(void const * argument)
|
|||
* @retval None
|
||||
*/
|
||||
/* USER CODE END Header_start_dac_task */
|
||||
void start_dac_task(void const * argument)
|
||||
void start_dac_task(void const *argument)
|
||||
{
|
||||
/* USER CODE BEGIN start_dac_task */
|
||||
/* Infinite loop */
|
||||
dac161s997_init();
|
||||
for (;;)
|
||||
{
|
||||
dac161s997_output(DAC161S997_1, 12.0f);
|
||||
osDelay(1);
|
||||
uint8_t ch = 0;
|
||||
for (; ch < DAC_MAX_NUM; ch++)
|
||||
{
|
||||
dac161s997_output(ch, 12.0f);
|
||||
}
|
||||
vTaskDelay(100);
|
||||
}
|
||||
/* USER CODE END start_dac_task */
|
||||
}
|
||||
|
@ -172,7 +176,7 @@ void start_dac_task(void const * argument)
|
|||
* @retval None
|
||||
*/
|
||||
/* USER CODE END Header_start_ch438_task */
|
||||
void start_ch438_task(void const * argument)
|
||||
void start_ch438_task(void const *argument)
|
||||
{
|
||||
/* USER CODE BEGIN start_ch438_task */
|
||||
/* Infinite loop */
|
||||
|
@ -180,7 +184,6 @@ void start_ch438_task(void const * argument)
|
|||
for (;;)
|
||||
{
|
||||
uint8_t data[9] = {0xFF, 0xff, 0xff, 0xff, 0xff, 0x34, 0x56, 0x78, 0x9a};
|
||||
ch438_test();
|
||||
ch438_send_data(CH438_UART0, data, 9);
|
||||
osDelay(1000);
|
||||
}
|
||||
|
|
101
Core/Src/gpio.c
101
Core/Src/gpio.c
|
@ -51,54 +51,103 @@ void MX_GPIO_Init(void)
|
|||
__HAL_RCC_GPIOC_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOG_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(PE5_LED_GPIO_Port, PE5_LED_Pin, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(GPIOE, DAC7_CS_Pin|DAC8_CS_Pin|DAC9_CS_Pin|PE5_LED_Pin
|
||||
|HART7_RTS_Pin|HART6_RTS_Pin|DAC5_CS_Pin|DAC6_CS_Pin, GPIO_PIN_SET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(HART_ALL_RST_GPIO_Port, HART_ALL_RST_Pin, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(GPIOF, HART11_RTS_Pin|HART10_RTS_Pin, GPIO_PIN_SET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(CH438_1_AMOD_GPIO_Port, CH438_1_AMOD_Pin, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(GPIOA, HART_ALL_RST_Pin|HART15_RTS_Pin|HART14_RTS_Pin|HART12_RTS_Pin, GPIO_PIN_SET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(HART1_RTS_GPIO_Port, HART1_RTS_Pin, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(GPIOB, HART9_RTS_Pin|DAC1_CS_Pin|DAC2_CS_Pin|DAC3_CS_Pin
|
||||
|DAC4_CS_Pin, GPIO_PIN_SET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(CH438_1_RST_GPIO_Port, CH438_1_RST_Pin, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(CH438_AMOD_GPIO_Port, CH438_AMOD_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(DAC1_CS_GPIO_Port, DAC1_CS_Pin, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(GPIOG, HART8_RTS_Pin|HART2_RTS_Pin|HART1_RTS_Pin|HART16_RTS_Pin
|
||||
|DAC11_CS_Pin|DAC12_CS_Pin|DAC13_CS_Pin|DAC14_CS_Pin
|
||||
|DAC15_CS_Pin|DAC16_CS_Pin, GPIO_PIN_SET);
|
||||
|
||||
/*Configure GPIO pin : PtPin */
|
||||
GPIO_InitStruct.Pin = PE5_LED_Pin;
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOD, HART5_RTS_Pin|HART4_RTS_Pin|HART3_RTS_Pin|CH438_RST_Pin
|
||||
|DAC10_CS_Pin, GPIO_PIN_SET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(HART13_RTS_GPIO_Port, HART13_RTS_Pin, GPIO_PIN_SET);
|
||||
|
||||
/*Configure GPIO pins : PEPin PEPin PEPin PEPin
|
||||
PEPin PEPin PEPin PEPin */
|
||||
GPIO_InitStruct.Pin = DAC7_CS_Pin|DAC8_CS_Pin|DAC9_CS_Pin|PE5_LED_Pin
|
||||
|HART7_RTS_Pin|HART6_RTS_Pin|DAC5_CS_Pin|DAC6_CS_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
HAL_GPIO_Init(PE5_LED_GPIO_Port, &GPIO_InitStruct);
|
||||
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : PtPin */
|
||||
GPIO_InitStruct.Pin = HART_ALL_RST_Pin;
|
||||
/*Configure GPIO pins : PFPin PFPin */
|
||||
GPIO_InitStruct.Pin = HART11_RTS_Pin|HART10_RTS_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
HAL_GPIO_Init(HART_ALL_RST_GPIO_Port, &GPIO_InitStruct);
|
||||
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PAPin PAPin PAPin PAPin */
|
||||
GPIO_InitStruct.Pin = HART_ALL_RST_Pin|HART15_RTS_Pin|HART14_RTS_Pin|HART12_RTS_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PBPin PBPin PBPin PBPin
|
||||
PBPin */
|
||||
GPIO_InitStruct.Pin = HART9_RTS_Pin|DAC1_CS_Pin|DAC2_CS_Pin|DAC3_CS_Pin
|
||||
|DAC4_CS_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : PtPin */
|
||||
GPIO_InitStruct.Pin = CH438_1_AMOD_Pin;
|
||||
GPIO_InitStruct.Pin = CH438_AMOD_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
HAL_GPIO_Init(CH438_1_AMOD_GPIO_Port, &GPIO_InitStruct);
|
||||
HAL_GPIO_Init(CH438_AMOD_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : PtPin */
|
||||
GPIO_InitStruct.Pin = HART1_RTS_Pin;
|
||||
/*Configure GPIO pins : PGPin PGPin PGPin PGPin
|
||||
PGPin PGPin PGPin PGPin
|
||||
PGPin PGPin */
|
||||
GPIO_InitStruct.Pin = HART8_RTS_Pin|HART2_RTS_Pin|HART1_RTS_Pin|HART16_RTS_Pin
|
||||
|DAC11_CS_Pin|DAC12_CS_Pin|DAC13_CS_Pin|DAC14_CS_Pin
|
||||
|DAC15_CS_Pin|DAC16_CS_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
HAL_GPIO_Init(HART1_RTS_GPIO_Port, &GPIO_InitStruct);
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PDPin PDPin PDPin PDPin
|
||||
PDPin */
|
||||
GPIO_InitStruct.Pin = HART5_RTS_Pin|HART4_RTS_Pin|HART3_RTS_Pin|CH438_RST_Pin
|
||||
|DAC10_CS_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : PtPin */
|
||||
GPIO_InitStruct.Pin = HART13_RTS_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
HAL_GPIO_Init(HART13_RTS_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : PtPin */
|
||||
GPIO_InitStruct.Pin = CH438_INT_Pin;
|
||||
|
@ -106,20 +155,6 @@ void MX_GPIO_Init(void)
|
|||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
HAL_GPIO_Init(CH438_INT_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : PtPin */
|
||||
GPIO_InitStruct.Pin = CH438_1_RST_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
HAL_GPIO_Init(CH438_1_RST_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : PtPin */
|
||||
GPIO_InitStruct.Pin = DAC1_CS_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
HAL_GPIO_Init(DAC1_CS_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/* EXTI interrupt init*/
|
||||
HAL_NVIC_SetPriority(EXTI2_IRQn, 5, 0);
|
||||
HAL_NVIC_EnableIRQ(EXTI2_IRQn);
|
||||
|
|
|
@ -149,8 +149,7 @@ void SystemClock_Config(void)
|
|||
|
||||
/** Initializes the CPU, AHB and APB buses clocks
|
||||
*/
|
||||
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|
||||
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
|
||||
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
|
||||
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
|
||||
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
|
||||
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
|
||||
|
@ -167,7 +166,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
|||
{
|
||||
if (CH438_INT_Pin == GPIO_Pin)
|
||||
{
|
||||
ch438_interrupt_handler();
|
||||
ch438_interrupt_handler_ch438_chip_1();
|
||||
}
|
||||
}
|
||||
/* USER CODE END 4 */
|
||||
|
@ -185,7 +184,8 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
|
|||
/* USER CODE BEGIN Callback 0 */
|
||||
|
||||
/* USER CODE END Callback 0 */
|
||||
if (htim->Instance == TIM4) {
|
||||
if (htim->Instance == TIM4)
|
||||
{
|
||||
HAL_IncTick();
|
||||
}
|
||||
/* USER CODE BEGIN Callback 1 */
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -24,7 +24,7 @@ const uint8_t Interruptnum[] = {
|
|||
0x80,
|
||||
}; /* SSR寄存器中断号对应值 */
|
||||
|
||||
uint8_t receive_data_buff[256];
|
||||
ch438_uart_data_t ch438_uart_data[16] = {0};
|
||||
uint8_t receive_data_len;
|
||||
|
||||
static void ch438_tranconfig(uint8_t uart_num);
|
||||
|
@ -39,10 +39,20 @@ static void ch438_set_baudrate(uint8_t uart_num, uint32_t baudrate);
|
|||
*/
|
||||
void ch438_tranconfig(uint8_t uart_num)
|
||||
{
|
||||
uint8_t ch438_num = 0;
|
||||
if (uart_num < 8)
|
||||
{
|
||||
ch438_num = CH438_CHIP0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ch438_num = CH438_CHIP1;
|
||||
uart_num -= 8;
|
||||
}
|
||||
// 设置串口通讯的格式,8个数据位,1个停止位,1个校验位,奇校验
|
||||
ch438_write_reg(offsetadd[uart_num] | REG_LCR_ADDR, BIT_LCR_PAREN | BIT_LCR_WORDSZ1 | BIT_LCR_WORDSZ0, 1);
|
||||
ch438_write_reg(ch438_num, offsetadd[uart_num] | REG_LCR_ADDR, BIT_LCR_PAREN | BIT_LCR_WORDSZ1 | BIT_LCR_WORDSZ0, 1);
|
||||
/* 设置FIFO模式,触发点为112个字节 */
|
||||
ch438_write_reg(offsetadd[uart_num] | REG_FCR_ADDR, BIT_FCR_RECVTG0 | BIT_FCR_RECVTG1 | BIT_FCR_FIFOEN, 1);
|
||||
ch438_write_reg(ch438_num, offsetadd[uart_num] | REG_FCR_ADDR, BIT_FCR_RECVTG0 | BIT_FCR_RECVTG1 | BIT_FCR_FIFOEN, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -57,17 +67,26 @@ static void ch438_set_baudrate(uint8_t uart_num, uint32_t baudrate)
|
|||
{
|
||||
uint8_t dlab = 0;
|
||||
uint16_t bandspeed;
|
||||
|
||||
dlab = ch438_read_reg(offsetadd[uart_num] | REG_LCR_ADDR, 1);
|
||||
uint8_t ch438_num = 0;
|
||||
if (uart_num < 8)
|
||||
{
|
||||
ch438_num = CH438_CHIP0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ch438_num = CH438_CHIP1;
|
||||
uart_num -= 8;
|
||||
}
|
||||
dlab = ch438_read_reg(ch438_num, offsetadd[uart_num] | REG_LCR_ADDR, 1);
|
||||
dlab |= 0x80; // 置LCR寄存器的DLAB位为1
|
||||
ch438_write_reg(offsetadd[uart_num] | REG_LCR_ADDR, dlab, 1);
|
||||
ch438_write_reg(ch438_num, offsetadd[uart_num] | REG_LCR_ADDR, dlab, 1);
|
||||
|
||||
bandspeed = CH438_CLK / 16 / baudrate;
|
||||
ch438_write_reg(offsetadd[uart_num] | REG_DLL_ADDR, (uint8_t)bandspeed, 1);
|
||||
ch438_write_reg(offsetadd[uart_num] | REG_DLM_ADDR, (uint8_t)(bandspeed >> 8), 1);
|
||||
ch438_write_reg(ch438_num, offsetadd[uart_num] | REG_DLL_ADDR, (uint8_t)bandspeed, 1);
|
||||
ch438_write_reg(ch438_num, offsetadd[uart_num] | REG_DLM_ADDR, (uint8_t)(bandspeed >> 8), 1);
|
||||
|
||||
dlab &= 0x7F; // 置LCR寄存器的DLAB位为0
|
||||
ch438_write_reg(offsetadd[uart_num] | REG_LCR_ADDR, dlab, 1);
|
||||
ch438_write_reg(ch438_num, offsetadd[uart_num] | REG_LCR_ADDR, dlab, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -79,10 +98,18 @@ static void ch438_set_baudrate(uint8_t uart_num, uint32_t baudrate)
|
|||
* @param data 要写入的数据
|
||||
* @param size 要写入的数据大小(以字节为单位)
|
||||
*/
|
||||
void ch438_write_reg(uint8_t addr, uint8_t data, uint8_t size)
|
||||
void ch438_write_reg(uint8_t ch438_num, uint8_t addr, uint8_t data, uint8_t size)
|
||||
{
|
||||
if (ch438_num == CH438_CHIP0)
|
||||
{
|
||||
uint32_t *address = (uint32_t *)(0x60000000 + addr);
|
||||
HAL_SRAM_Write_8b(&hsram1, address, &data, size);
|
||||
}
|
||||
else if (ch438_num == CH438_CHIP1)
|
||||
{
|
||||
uint32_t *address = (uint32_t *)(0x64000000 + addr);
|
||||
HAL_SRAM_Write_8b(&hsram2, address, &data, size);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -95,27 +122,22 @@ void ch438_write_reg(uint8_t addr, uint8_t data, uint8_t size)
|
|||
*
|
||||
* @return 读取到的数据
|
||||
*/
|
||||
uint8_t ch438_read_reg(uint8_t addr, uint8_t size)
|
||||
uint8_t ch438_read_reg(uint8_t ch438_num, uint8_t addr, uint8_t size)
|
||||
{
|
||||
uint8_t data = 0;
|
||||
if (ch438_num == CH438_CHIP0)
|
||||
{
|
||||
uint32_t *address = (uint32_t *)(0x60000000 + addr);
|
||||
HAL_SRAM_Read_8b(&hsram1, address, &data, size);
|
||||
}
|
||||
else if (ch438_num == CH438_CHIP1)
|
||||
{
|
||||
uint32_t *address = (uint32_t *)(0x64000000 + addr);
|
||||
HAL_SRAM_Read_8b(&hsram2, address, &data, size);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
void ch438_test(void)
|
||||
{
|
||||
uint8_t reg_data[16] = {0};
|
||||
reg_data[0] = 0xAA;
|
||||
ch438_write_reg(offsetadd[0] | REG_SCR_ADDR, reg_data[0], 1);
|
||||
|
||||
reg_data[1] = ch438_read_reg(offsetadd[0] | REG_SCR_ADDR, 1);
|
||||
|
||||
reg_data[2] = ch438_read_reg(offsetadd[0] | REG_IER_ADDR, 1);
|
||||
reg_data[3] = ch438_read_reg(offsetadd[0] | REG_IIR_ADDR, 1);
|
||||
reg_data[4] = ch438_read_reg(offsetadd[0] | REG_LCR_ADDR, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 重置所有UART
|
||||
*
|
||||
|
@ -127,7 +149,8 @@ void ch438_reset_all_uart(void)
|
|||
{
|
||||
for (uint8_t i = 0; i < 8; i++)
|
||||
{
|
||||
ch438_write_reg(offsetadd[CH438_UART0 + i] | REG_IER_ADDR, BIT_IER_RESET, 1);
|
||||
ch438_write_reg(CH438_CHIP0, offsetadd[CH438_UART0 + i] | REG_IER_ADDR, BIT_IER_RESET, 1);
|
||||
ch438_write_reg(CH438_CHIP1, offsetadd[CH438_UART0 + i] | REG_IER_ADDR, BIT_IER_RESET, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -140,7 +163,17 @@ void ch438_reset_all_uart(void)
|
|||
*/
|
||||
void ch438_close_uart(uint8_t uart_num)
|
||||
{
|
||||
ch438_write_reg(offsetadd[uart_num] | REG_IER_ADDR, BIT_IER_LOWPOWER, 1);
|
||||
uint8_t ch438_num = 0;
|
||||
if (uart_num < 8)
|
||||
{
|
||||
ch438_num = CH438_CHIP0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ch438_num = CH438_CHIP1;
|
||||
uart_num -= 8;
|
||||
}
|
||||
ch438_write_reg(ch438_num, offsetadd[uart_num] | REG_IER_ADDR, BIT_IER_LOWPOWER, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -154,8 +187,8 @@ void ch438_close_uart(uint8_t uart_num)
|
|||
*/
|
||||
void ch438_close_all_uart(void)
|
||||
{
|
||||
|
||||
ch438_write_reg(offsetadd[CH438_UART0] | REG_IER_ADDR, BIT_IER_LOWPOWER | BIT_IER_SLP, 1); // 数据手册描述:SLP和LOWPOWER同时为1,关闭时钟振荡器,所有串口进入休眠
|
||||
ch438_write_reg(CH438_CHIP0, offsetadd[CH438_UART0] | REG_IER_ADDR, BIT_IER_LOWPOWER | BIT_IER_SLP, 1); // 数据手册描述:SLP和LOWPOWER同时为1,关闭时钟振荡器,所有串口进入休眠
|
||||
ch438_write_reg(CH438_CHIP1, offsetadd[CH438_UART0] | REG_IER_ADDR, BIT_IER_LOWPOWER | BIT_IER_SLP, 1); // 数据手册描述:SLP
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -168,6 +201,7 @@ void ch438_close_all_uart(void)
|
|||
*/
|
||||
void ch438_init_uart(uint8_t uart_num, uint32_t baudrate)
|
||||
{
|
||||
|
||||
ch438_tranconfig(uart_num);
|
||||
ch438_set_baudrate(uart_num, baudrate);
|
||||
}
|
||||
|
@ -183,7 +217,17 @@ void ch438_init_uart(uint8_t uart_num, uint32_t baudrate)
|
|||
*/
|
||||
uint8_t ch438_check_iir_reg(uint8_t uart_num)
|
||||
{
|
||||
return ch438_read_reg(offsetadd[uart_num] | REG_IIR_ADDR, 1);
|
||||
uint8_t ch438_num = 0;
|
||||
if (uart_num < 8)
|
||||
{
|
||||
ch438_num = CH438_CHIP0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ch438_num = CH438_CHIP1;
|
||||
uart_num -= 8;
|
||||
}
|
||||
return ch438_read_reg(ch438_num, offsetadd[uart_num] | REG_IIR_ADDR, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -195,29 +239,59 @@ uint8_t ch438_check_iir_reg(uint8_t uart_num)
|
|||
*/
|
||||
void ch438_init_config(uint8_t uart_num)
|
||||
{
|
||||
uint8_t ch438_num = 0;
|
||||
if (uart_num < 8)
|
||||
{
|
||||
ch438_num = CH438_CHIP0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ch438_num = CH438_CHIP1;
|
||||
uart_num -= 8;
|
||||
}
|
||||
/* CH438打开BIT_IER_IETHRE会产生一个发送空中断 */
|
||||
ch438_write_reg(offsetadd[uart_num] | REG_IER_ADDR, BIT_IER_IELINES | BIT_IER_IETHRE | BIT_IER_IERECV, 1);
|
||||
ch438_write_reg(ch438_num, offsetadd[uart_num] | REG_IER_ADDR, BIT_IER_IELINES | BIT_IER_IETHRE | BIT_IER_IERECV, 1);
|
||||
ch438_check_iir_reg(uart_num);
|
||||
ch438_write_reg(offsetadd[uart_num] | REG_MCR_ADDR, BIT_MCR_OUT2, 1);
|
||||
ch438_write_reg(ch438_num, offsetadd[uart_num] | REG_MCR_ADDR, BIT_MCR_OUT2, 1);
|
||||
}
|
||||
|
||||
void ch438_send_data(uint8_t uart_num, uint8_t *data, uint16_t len)
|
||||
{
|
||||
HART1_RTS_SEND;
|
||||
hart_ht1200m_rts_io_send(uart_num);
|
||||
uint8_t ch438_num = 0;
|
||||
if (uart_num < 8)
|
||||
{
|
||||
ch438_num = CH438_CHIP0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ch438_num = CH438_CHIP1;
|
||||
uart_num -= 8;
|
||||
}
|
||||
for (uint8_t i = 0; i < len; i++)
|
||||
{
|
||||
ch438_write_reg(offsetadd[uart_num] | REG_THR_ADDR, data[i], 1);
|
||||
ch438_write_reg(ch438_num, offsetadd[uart_num] | REG_THR_ADDR, data[i], 1);
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t ch438_recv_data(uint8_t uart_num, uint8_t *data)
|
||||
|
||||
{
|
||||
uint8_t data_len = 0;
|
||||
uint8_t *receive_data;
|
||||
receive_data = data;
|
||||
uint16_t time_out = 1000;
|
||||
uint8_t ch438_num = 0;
|
||||
if (uart_num < 8)
|
||||
{
|
||||
ch438_num = CH438_CHIP0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ch438_num = CH438_CHIP1;
|
||||
uart_num -= 8;
|
||||
}
|
||||
// 等待数据准备好
|
||||
while ((ch438_read_reg(offsetadd[uart_num] | REG_LSR_ADDR, 1) & BIT_LSR_DATARDY) == 0)
|
||||
while ((ch438_read_reg(ch438_num, offsetadd[uart_num] | REG_LSR_ADDR, 1) & BIT_LSR_DATARDY) == 0)
|
||||
{
|
||||
time_out--;
|
||||
if (time_out == 0)
|
||||
|
@ -225,9 +299,9 @@ uint8_t ch438_recv_data(uint8_t uart_num, uint8_t *data)
|
|||
break;
|
||||
}
|
||||
}
|
||||
while ((ch438_read_reg(offsetadd[uart_num] | REG_LSR_ADDR, 1) & BIT_LSR_DATARDY))
|
||||
while ((ch438_read_reg(ch438_num, offsetadd[uart_num] | REG_LSR_ADDR, 1) & BIT_LSR_DATARDY))
|
||||
{
|
||||
*receive_data = ch438_read_reg(offsetadd[uart_num] | REG_RBR_ADDR, 1);
|
||||
*receive_data = ch438_read_reg(ch438_num, offsetadd[uart_num] | REG_RBR_ADDR, 1);
|
||||
receive_data++;
|
||||
data_len++;
|
||||
if (data_len == 112)
|
||||
|
@ -238,13 +312,13 @@ uint8_t ch438_recv_data(uint8_t uart_num, uint8_t *data)
|
|||
return data_len;
|
||||
}
|
||||
|
||||
void ch438_interrupt_handler(void)
|
||||
void ch438_interrupt_handler_ch438_chip_1(void)
|
||||
{
|
||||
uint8_t gInterruptStatus; /* 全局中断状态 */
|
||||
uint8_t InterruptStatus; /* 独立串口中断状态 */
|
||||
uint8_t i;
|
||||
|
||||
gInterruptStatus = ch438_read_reg(REG_SSR_ADDR, 1);
|
||||
uint8_t ch438_num = CH438_CHIP0;
|
||||
gInterruptStatus = ch438_read_reg(ch438_num, REG_SSR_ADDR, 1);
|
||||
|
||||
if (!gInterruptStatus)
|
||||
{
|
||||
|
@ -255,28 +329,75 @@ void ch438_interrupt_handler(void)
|
|||
{
|
||||
if (gInterruptStatus & Interruptnum[i]) /* 检测哪个串口发生中断 */
|
||||
{
|
||||
InterruptStatus = ch438_read_reg(offsetadd[i] | REG_IIR_ADDR, 1) & 0x0f; /* 读串口的中断状态 */
|
||||
InterruptStatus = ch438_read_reg(ch438_num, offsetadd[i] | REG_IIR_ADDR, 1) & 0x0f; /* 读串口的中断状态 */
|
||||
|
||||
switch (InterruptStatus)
|
||||
{
|
||||
case INT_NOINT: /* 没有中断 */
|
||||
break;
|
||||
case INT_THR_EMPTY: /* THR空中断 */
|
||||
HART1_RTS_RECEIVE;
|
||||
hart_ht1200m_rts_io_receive(i);
|
||||
break;
|
||||
case INT_RCV_OVERTIME: /* 接收超时中断 */
|
||||
receive_data_len = ch438_recv_data(i, receive_data_buff);
|
||||
ch438_send_data(i, receive_data_buff, receive_data_len);
|
||||
ch438_uart_data[i].receive_data_length = ch438_recv_data(i, ch438_uart_data[i].receive_data_buff);
|
||||
ch438_send_data(i, ch438_uart_data[i].receive_data_buff, ch438_uart_data[i].receive_data_length);
|
||||
break;
|
||||
case INT_RCV_SUCCESS: /* 接收数据可用中断 */
|
||||
receive_data_len = ch438_recv_data(i, receive_data_buff);
|
||||
ch438_send_data(i, receive_data_buff, receive_data_len);
|
||||
ch438_uart_data[i].receive_data_length = ch438_recv_data(i, ch438_uart_data[i].receive_data_buff);
|
||||
ch438_send_data(i, ch438_uart_data[i].receive_data_buff, ch438_uart_data[i].receive_data_length);
|
||||
break;
|
||||
case INT_RCV_LINES: /* 接收线路状态中断 */
|
||||
ch438_read_reg(offsetadd[i] | REG_LSR_ADDR, 1);
|
||||
ch438_read_reg(ch438_num, offsetadd[i] | REG_LSR_ADDR, 1);
|
||||
break;
|
||||
case INT_MODEM_CHANGE: /* MODEM输入变化中断 */
|
||||
ch438_read_reg(offsetadd[i] | REG_MSR_ADDR, 1);
|
||||
ch438_read_reg(ch438_num, offsetadd[i] | REG_MSR_ADDR, 1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ch438_interrupt_handler_ch438_chip_2(void)
|
||||
{
|
||||
uint8_t gInterruptStatus; /* 全局中断状态 */
|
||||
uint8_t InterruptStatus; /* 独立串口中断状态 */
|
||||
uint8_t i;
|
||||
uint8_t ch438_num = CH438_CHIP1;
|
||||
gInterruptStatus = ch438_read_reg(ch438_num, REG_SSR_ADDR, 1);
|
||||
|
||||
if (!gInterruptStatus)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 8; i < 16; i++)
|
||||
{
|
||||
if (gInterruptStatus & Interruptnum[i - 8]) /* 检测哪个串口发生中断 */
|
||||
{
|
||||
InterruptStatus = ch438_read_reg(ch438_num, offsetadd[i - 8] | REG_IIR_ADDR, 1) & 0x0f; /* 读串口的中断状态 */
|
||||
|
||||
switch (InterruptStatus)
|
||||
{
|
||||
case INT_NOINT: /* 没有中断 */
|
||||
break;
|
||||
case INT_THR_EMPTY: /* THR空中断 */
|
||||
hart_ht1200m_rts_io_receive(i);
|
||||
break;
|
||||
case INT_RCV_OVERTIME: /* 接收超时中断 */
|
||||
ch438_uart_data[i].receive_data_length = ch438_recv_data(i, ch438_uart_data[i].receive_data_buff);
|
||||
ch438_send_data(i, ch438_uart_data[i].receive_data_buff, ch438_uart_data[i].receive_data_length);
|
||||
break;
|
||||
case INT_RCV_SUCCESS: /* 接收数据可用中断 */
|
||||
ch438_uart_data[i].receive_data_length = ch438_recv_data(i, ch438_uart_data[i].receive_data_buff);
|
||||
ch438_send_data(i, ch438_uart_data[i].receive_data_buff, ch438_uart_data[i].receive_data_length);
|
||||
break;
|
||||
case INT_RCV_LINES: /* 接收线路状态中断 */
|
||||
ch438_read_reg(ch438_num, offsetadd[i - 8] | REG_LSR_ADDR, 1);
|
||||
break;
|
||||
case INT_MODEM_CHANGE: /* MODEM输入变化中断 */
|
||||
ch438_read_reg(ch438_num, offsetadd[i - 8] | REG_MSR_ADDR, 1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -287,8 +408,13 @@ void ch438_interrupt_handler(void)
|
|||
|
||||
void ch438_init(void)
|
||||
{
|
||||
uint8_t i;
|
||||
|
||||
ch438_reset_all_uart();
|
||||
HAL_Delay(250);
|
||||
ch438_init_uart(CH438_UART0, 1200);
|
||||
ch438_init_config(CH438_UART0);
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
ch438_init_uart(i, 1200);
|
||||
ch438_init_config(i);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#ifndef __CH438Q_H__
|
||||
#define __CH438Q_H__
|
||||
|
||||
|
||||
#include "main.h"
|
||||
/* CH438串口寄存器地址 */
|
||||
#define REG_RBR_ADDR 0x00 /* 串口0接收缓冲寄存器地址 */
|
||||
|
@ -119,11 +118,24 @@ typedef enum
|
|||
CH438_UART5,
|
||||
CH438_UART6,
|
||||
CH438_UART7,
|
||||
} ch438_uart_e;
|
||||
|
||||
void ch438_write_reg(uint8_t addr, uint8_t data, uint8_t size);
|
||||
uint8_t ch438_read_reg(uint8_t addr, uint8_t size);
|
||||
void ch438_test(void);
|
||||
} ch438_uart_e;
|
||||
typedef enum
|
||||
{
|
||||
CH438_CHIP0 = 0,
|
||||
CH438_CHIP1,
|
||||
} ch438_chip_e;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t receive_data_buff[256];
|
||||
uint8_t receive_data_length;
|
||||
} ch438_uart_data_t;
|
||||
|
||||
extern ch438_uart_data_t ch438_uart_data[16];
|
||||
|
||||
void ch438_write_reg(uint8_t ch438_num, uint8_t addr, uint8_t data, uint8_t size);
|
||||
uint8_t ch438_read_reg(uint8_t ch438_num, uint8_t addr, uint8_t size);
|
||||
void ch438_reset_all_uart(void);
|
||||
void ch438_close_uart(uint8_t uart_num);
|
||||
void ch438_close_all_uart(void);
|
||||
|
@ -132,8 +144,8 @@ uint8_t ch438_check_iir_reg(uint8_t uart_num);
|
|||
void ch438_init_config(uint8_t uart_num);
|
||||
void ch438_send_data(uint8_t uart_num, uint8_t *data, uint16_t len);
|
||||
uint8_t ch438_recv_data(uint8_t uart_num, uint8_t *data);
|
||||
void ch438_interrupt_handler(void);
|
||||
void ch438_interrupt_handler_ch438_chip_1(void);
|
||||
void ch438_interrupt_handler_ch438_chip_2(void);
|
||||
void ch438_init(void);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -9,16 +9,15 @@
|
|||
* @param reg 要写入的寄存器地址
|
||||
* @param data 要写入的数据,16位
|
||||
*/
|
||||
void dac161s997_write_reg(chip_type_e dac_num, uint8_t reg, uint16_t data)
|
||||
void dac161s997_write_reg(uint8_t dac_num, uint8_t reg, uint16_t data)
|
||||
{
|
||||
uint8_t data_buffer[3] = {0, 0, 0};
|
||||
data_buffer[0] = reg;
|
||||
data_buffer[1] = data >> 8;
|
||||
data_buffer[2] = data;
|
||||
// board_spi_init(dac_num); // 初始化SPI,因为ADC芯片也用SPI1,但是时序不同
|
||||
board_spi_cs_on(dac_num);
|
||||
dac161s997_cs_on(dac_num);
|
||||
spi_transmit_receive(&hspi1, data_buffer, 3);
|
||||
board_spi_cs_off(dac_num);
|
||||
dac161s997_cs_off(dac_num);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -26,11 +25,12 @@ void dac161s997_write_reg(chip_type_e dac_num, uint8_t reg, uint16_t data)
|
|||
*/
|
||||
void dac161s997_init(void)
|
||||
{
|
||||
dac161s997_write_reg(DAC161S997_1, DAC161S997_ERR_LOW_REG, 0xFFFF);
|
||||
dac161s997_write_reg(DAC161S997_1, DAC161S997_ERR_CONFIG_REG, 0x070E);
|
||||
|
||||
// dac161s997_write_reg(DAC161S997_2, DAC161S997_ERR_LOW_REG, 0xFFFF);
|
||||
// dac161s997_write_reg(DAC161S997_2, DAC161S997_ERR_CONFIG_REG, 0x070E);
|
||||
uint8_t i;
|
||||
for (i = 0; i < DAC_MAX_NUM; i++)
|
||||
{
|
||||
dac161s997_write_reg(DAC161S997_1 + i, DAC161S997_ERR_LOW_REG, 0xFFFF);
|
||||
dac161s997_write_reg(DAC161S997_1 + i, DAC161S997_ERR_CONFIG_REG, 0x070E);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -41,15 +41,14 @@ void dac161s997_init(void)
|
|||
* @param dac_num DAC芯片类型
|
||||
* @param current 需要设置的电流值,单位:毫安
|
||||
*/
|
||||
void dac161s997_output(chip_type_e dac_num, float current)
|
||||
void dac161s997_output(uint8_t dac_num, float current)
|
||||
{
|
||||
uint32_t dac_code = (uint32_t)((current * 65535.0f) / 24.0f);
|
||||
uint8_t data_buffer[3] = {0, 0, 0};
|
||||
data_buffer[0] = DAC161S997_DACCODE_REG;
|
||||
data_buffer[1] = dac_code >> 8;
|
||||
data_buffer[2] = dac_code;
|
||||
// board_spi_init(dac_num); // 初始化SPI,因为ADC芯片也用SPI1,但是时序不同
|
||||
board_spi_cs_on(dac_num);
|
||||
dac161s997_cs_on(dac_num);
|
||||
spi_transmit_receive(&hspi1, data_buffer, 3);
|
||||
board_spi_cs_off(dac_num);
|
||||
dac161s997_cs_off(dac_num);
|
||||
}
|
||||
|
|
|
@ -1,20 +1,127 @@
|
|||
#include "ht1200m.h"
|
||||
void hart_ht1200m_rts_io_send(uint8_t channel)
|
||||
|
||||
{
|
||||
switch (channel)
|
||||
{
|
||||
case 0:
|
||||
HART1_RTS_SEND;
|
||||
break;
|
||||
case 1:
|
||||
HART2_RTS_SEND;
|
||||
break;
|
||||
case 2:
|
||||
HART3_RTS_SEND;
|
||||
break;
|
||||
case 3:
|
||||
HART4_RTS_SEND;
|
||||
break;
|
||||
case 4:
|
||||
HART5_RTS_SEND;
|
||||
break;
|
||||
case 5:
|
||||
HART6_RTS_SEND;
|
||||
break;
|
||||
case 6:
|
||||
HART7_RTS_SEND;
|
||||
break;
|
||||
case 7:
|
||||
HART8_RTS_SEND;
|
||||
break;
|
||||
case 8:
|
||||
HART9_RTS_SEND;
|
||||
break;
|
||||
case 9:
|
||||
HART10_RTS_SEND;
|
||||
break;
|
||||
case 10:
|
||||
HART11_RTS_SEND;
|
||||
break;
|
||||
case 11:
|
||||
HART12_RTS_SEND;
|
||||
break;
|
||||
case 12:
|
||||
HART13_RTS_SEND;
|
||||
break;
|
||||
case 13:
|
||||
HART14_RTS_SEND;
|
||||
break;
|
||||
case 14:
|
||||
HART15_RTS_SEND;
|
||||
break;
|
||||
case 15:
|
||||
HART16_RTS_SEND;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void hart_ht1200m_rts_io_receive(uint8_t channel)
|
||||
{
|
||||
switch (channel)
|
||||
{
|
||||
case 0:
|
||||
HART1_RTS_RECEIVE;
|
||||
break;
|
||||
case 1:
|
||||
HART2_RTS_RECEIVE;
|
||||
break;
|
||||
case 2:
|
||||
HART3_RTS_RECEIVE;
|
||||
break;
|
||||
case 3:
|
||||
HART4_RTS_RECEIVE;
|
||||
break;
|
||||
case 4:
|
||||
HART5_RTS_RECEIVE;
|
||||
break;
|
||||
case 5:
|
||||
HART6_RTS_RECEIVE;
|
||||
break;
|
||||
case 6:
|
||||
HART7_RTS_RECEIVE;
|
||||
break;
|
||||
case 7:
|
||||
HART8_RTS_RECEIVE;
|
||||
break;
|
||||
case 8:
|
||||
HART9_RTS_RECEIVE;
|
||||
break;
|
||||
case 9:
|
||||
HART10_RTS_RECEIVE;
|
||||
break;
|
||||
case 10:
|
||||
HART11_RTS_RECEIVE;
|
||||
break;
|
||||
case 11:
|
||||
HART12_RTS_RECEIVE;
|
||||
break;
|
||||
case 12:
|
||||
HART13_RTS_RECEIVE;
|
||||
break;
|
||||
case 13:
|
||||
HART14_RTS_RECEIVE;
|
||||
break;
|
||||
case 14:
|
||||
HART15_RTS_RECEIVE;
|
||||
break;
|
||||
case 15:
|
||||
HART16_RTS_RECEIVE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 重置hart_ht1200m模块
|
||||
*
|
||||
* 该函数用于重置hart_ht1200m模块,通过操作硬件复位引脚和RTS引脚实现。
|
||||
*
|
||||
* 具体步骤如下:
|
||||
* 1. 将HART1和HART2的复位引脚置高电平,启动复位过程。
|
||||
* 2. 延时10毫秒,确保复位过程完成。
|
||||
* 3. 将HART1和HART2的复位引脚置低电平,结束复位过程。
|
||||
* 4. 将HART1和HART2的RTS引脚设置为接收状态,准备接收数据。
|
||||
*/
|
||||
extern void hart_ht1200m_reset(void)
|
||||
{
|
||||
uint8_t i = 0;
|
||||
HART_RESET_ON;
|
||||
HAL_Delay(10);
|
||||
HART_RESET_OFF;
|
||||
HART1_RTS_RECEIVE;
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
hart_ht1200m_rts_io_receive(i);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,8 +9,52 @@
|
|||
#define HART1_RTS_RECEIVE HAL_GPIO_WritePin(HART1_RTS_GPIO_Port, HART1_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART1_RTS_SEND HAL_GPIO_WritePin(HART1_RTS_GPIO_Port, HART1_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
// #define HART2_RTS_RECEIVE HAL_GPIO_WritePin(HART2_RTS_GPIO_Port, HART2_RTS_Pin, GPIO_PIN_SET)
|
||||
// #define HART2_RTS_SEND HAL_GPIO_WritePin(HART2_RTS_GPIO_Port, HART2_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
#define HART2_RTS_RECEIVE HAL_GPIO_WritePin(HART2_RTS_GPIO_Port, HART2_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART2_RTS_SEND HAL_GPIO_WritePin(HART2_RTS_GPIO_Port, HART2_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
#define HART3_RTS_RECEIVE HAL_GPIO_WritePin(HART3_RTS_GPIO_Port, HART3_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART3_RTS_SEND HAL_GPIO_WritePin(HART3_RTS_GPIO_Port, HART3_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
#define HART4_RTS_RECEIVE HAL_GPIO_WritePin(HART4_RTS_GPIO_Port, HART4_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART4_RTS_SEND HAL_GPIO_WritePin(HART4_RTS_GPIO_Port, HART4_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
#define HART5_RTS_RECEIVE HAL_GPIO_WritePin(HART5_RTS_GPIO_Port, HART5_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART5_RTS_SEND HAL_GPIO_WritePin(HART5_RTS_GPIO_Port, HART5_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
#define HART6_RTS_RECEIVE HAL_GPIO_WritePin(HART6_RTS_GPIO_Port, HART6_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART6_RTS_SEND HAL_GPIO_WritePin(HART6_RTS_GPIO_Port, HART6_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
#define HART7_RTS_RECEIVE HAL_GPIO_WritePin(HART7_RTS_GPIO_Port, HART7_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART7_RTS_SEND HAL_GPIO_WritePin(HART7_RTS_GPIO_Port, HART7_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
#define HART8_RTS_RECEIVE HAL_GPIO_WritePin(HART8_RTS_GPIO_Port, HART8_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART8_RTS_SEND HAL_GPIO_WritePin(HART8_RTS_GPIO_Port, HART8_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
#define HART9_RTS_RECEIVE HAL_GPIO_WritePin(HART9_RTS_GPIO_Port, HART9_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART9_RTS_SEND HAL_GPIO_WritePin(HART9_RTS_GPIO_Port, HART9_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
#define HART10_RTS_RECEIVE HAL_GPIO_WritePin(HART10_RTS_GPIO_Port, HART10_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART10_RTS_SEND HAL_GPIO_WritePin(HART10_RTS_GPIO_Port, HART10_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
#define HART11_RTS_RECEIVE HAL_GPIO_WritePin(HART11_RTS_GPIO_Port, HART11_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART11_RTS_SEND HAL_GPIO_WritePin(HART11_RTS_GPIO_Port, HART11_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
#define HART12_RTS_RECEIVE HAL_GPIO_WritePin(HART12_RTS_GPIO_Port, HART12_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART12_RTS_SEND HAL_GPIO_WritePin(HART12_RTS_GPIO_Port, HART12_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
#define HART13_RTS_RECEIVE HAL_GPIO_WritePin(HART13_RTS_GPIO_Port, HART13_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART13_RTS_SEND HAL_GPIO_WritePin(HART13_RTS_GPIO_Port, HART13_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
#define HART14_RTS_RECEIVE HAL_GPIO_WritePin(HART14_RTS_GPIO_Port, HART14_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART14_RTS_SEND HAL_GPIO_WritePin(HART14_RTS_GPIO_Port, HART14_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
#define HART15_RTS_RECEIVE HAL_GPIO_WritePin(HART15_RTS_GPIO_Port, HART15_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART15_RTS_SEND HAL_GPIO_WritePin(HART15_RTS_GPIO_Port, HART15_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
#define HART16_RTS_RECEIVE HAL_GPIO_WritePin(HART16_RTS_GPIO_Port, HART16_RTS_Pin, GPIO_PIN_SET)
|
||||
#define HART16_RTS_SEND HAL_GPIO_WritePin(HART16_RTS_GPIO_Port, HART16_RTS_Pin, GPIO_PIN_RESET) // 拉低引脚发送
|
||||
|
||||
extern void hart_ht1200m_reset(void);
|
||||
extern void hart_ht1200m_rts_io_send(uint8_t channel);
|
||||
extern void hart_ht1200m_rts_io_receive(uint8_t channel);
|
||||
#endif
|
||||
|
|
|
@ -13,26 +13,13 @@ int32_t spi_transmit_receive(SPI_HandleTypeDef *hspi, uint8_t *data_write, uint8
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
void ad7124_spi_init(void)
|
||||
{
|
||||
hspi1.Instance = SPI1;
|
||||
hspi1.Init.Mode = SPI_MODE_MASTER;
|
||||
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
|
||||
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
|
||||
hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH;
|
||||
hspi1.Init.CLKPhase = SPI_PHASE_2EDGE;
|
||||
hspi1.Init.NSS = SPI_NSS_SOFT;
|
||||
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32;
|
||||
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
|
||||
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
|
||||
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
||||
hspi1.Init.CRCPolynomial = 10;
|
||||
if (HAL_SPI_Init(&hspi1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 初始化DAC161S997的SPI接口
|
||||
*
|
||||
* 该函数用于初始化DAC161S997的SPI接口,包括设置SPI的模式、方向、数据大小、时钟极性、时钟相位、NSS信号、波特率预分频器、起始位、TI模式、CRC计算和CRC多项式等参数。
|
||||
*
|
||||
* @return 无返回值
|
||||
*/
|
||||
void dac161s997_spi_init(void)
|
||||
{
|
||||
hspi1.Instance = SPI1;
|
||||
|
@ -53,33 +40,59 @@ void dac161s997_spi_init(void)
|
|||
}
|
||||
}
|
||||
|
||||
// void ad7124_cs_on(void)
|
||||
// {
|
||||
// HAL_GPIO_WritePin(DAC1_CS_GPIO_Port, DAC1_CS_Pin, GPIO_PIN_SET);
|
||||
// HAL_GPIO_WritePin(DAC1_CS_GPIO_Port, DAC2_CS_Pin, GPIO_PIN_SET);
|
||||
// HAL_GPIO_WritePin(ADC_CS_GPIO_Port, ADC_CS_Pin, GPIO_PIN_RESET);
|
||||
// }
|
||||
|
||||
// void ad7124_cs_off(void)
|
||||
// {
|
||||
// HAL_GPIO_WritePin(DAC1_CS_GPIO_Port, DAC1_CS_Pin, GPIO_PIN_SET);
|
||||
// HAL_GPIO_WritePin(DAC1_CS_GPIO_Port, DAC2_CS_Pin, GPIO_PIN_SET);
|
||||
// HAL_GPIO_WritePin(ADC_CS_GPIO_Port, ADC_CS_Pin, GPIO_PIN_SET);
|
||||
// }
|
||||
void dac161s997_cs_on(chip_type_e dac_num)
|
||||
void dac161s997_cs_on(uint8_t dac_num)
|
||||
{
|
||||
switch (dac_num)
|
||||
{
|
||||
case DAC161S997_1:
|
||||
HAL_GPIO_WritePin(DAC1_CS_GPIO_Port, DAC1_CS_Pin, GPIO_PIN_RESET);
|
||||
// HAL_GPIO_WritePin(DAC1_CS_GPIO_Port, DAC2_CS_Pin, GPIO_PIN_SET);
|
||||
// HAL_GPIO_WritePin(ADC_CS_GPIO_Port, ADC_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
// case DAC161S997_2:
|
||||
// HAL_GPIO_WritePin(DAC1_CS_GPIO_Port, DAC2_CS_Pin, GPIO_PIN_RESET);
|
||||
// HAL_GPIO_WritePin(DAC1_CS_GPIO_Port, DAC1_CS_Pin, GPIO_PIN_SET);
|
||||
// HAL_GPIO_WritePin(ADC_CS_GPIO_Port, ADC_CS_Pin, GPIO_PIN_SET);
|
||||
// break;
|
||||
case DAC161S997_2:
|
||||
HAL_GPIO_WritePin(DAC2_CS_GPIO_Port, DAC2_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case DAC161S997_3:
|
||||
HAL_GPIO_WritePin(DAC3_CS_GPIO_Port, DAC3_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case DAC161S997_4:
|
||||
HAL_GPIO_WritePin(DAC4_CS_GPIO_Port, DAC4_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case DAC161S997_5:
|
||||
HAL_GPIO_WritePin(DAC5_CS_GPIO_Port, DAC5_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case DAC161S997_6:
|
||||
HAL_GPIO_WritePin(DAC6_CS_GPIO_Port, DAC6_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case DAC161S997_7:
|
||||
HAL_GPIO_WritePin(DAC7_CS_GPIO_Port, DAC7_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case DAC161S997_8:
|
||||
HAL_GPIO_WritePin(DAC8_CS_GPIO_Port, DAC8_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case DAC161S997_9:
|
||||
HAL_GPIO_WritePin(DAC9_CS_GPIO_Port, DAC9_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case DAC161S997_10:
|
||||
HAL_GPIO_WritePin(DAC10_CS_GPIO_Port, DAC10_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case DAC161S997_11:
|
||||
HAL_GPIO_WritePin(DAC11_CS_GPIO_Port, DAC11_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case DAC161S997_12:
|
||||
HAL_GPIO_WritePin(DAC12_CS_GPIO_Port, DAC12_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case DAC161S997_13:
|
||||
HAL_GPIO_WritePin(DAC13_CS_GPIO_Port, DAC13_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case DAC161S997_14:
|
||||
HAL_GPIO_WritePin(DAC14_CS_GPIO_Port, DAC14_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case DAC161S997_15:
|
||||
HAL_GPIO_WritePin(DAC15_CS_GPIO_Port, DAC15_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
case DAC161S997_16:
|
||||
HAL_GPIO_WritePin(DAC16_CS_GPIO_Port, DAC16_CS_Pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -90,71 +103,54 @@ void dac161s997_cs_off(uint8_t dac_num)
|
|||
{
|
||||
case DAC161S997_1:
|
||||
HAL_GPIO_WritePin(DAC1_CS_GPIO_Port, DAC1_CS_Pin, GPIO_PIN_SET);
|
||||
// HAL_GPIO_WritePin(DAC1_CS_GPIO_Port, DAC2_CS_Pin, GPIO_PIN_SET);
|
||||
// HAL_GPIO_WritePin(ADC_CS_GPIO_Port, ADC_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
// case DAC161S997_2:
|
||||
// HAL_GPIO_WritePin(DAC1_CS_GPIO_Port, DAC1_CS_Pin, GPIO_PIN_SET);
|
||||
// HAL_GPIO_WritePin(DAC1_CS_GPIO_Port, DAC2_CS_Pin, GPIO_PIN_SET);
|
||||
// HAL_GPIO_WritePin(ADC_CS_GPIO_Port, ADC_CS_Pin, GPIO_PIN_SET);
|
||||
// break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
void board_spi_init(chip_type_e chip_type)
|
||||
{
|
||||
switch (chip_type)
|
||||
{
|
||||
// case AD7124:
|
||||
// ad7124_spi_init();
|
||||
// break;
|
||||
case DAC161S997_1:
|
||||
dac161s997_spi_init();
|
||||
break;
|
||||
case DAC161S997_2:
|
||||
dac161s997_spi_init();
|
||||
HAL_GPIO_WritePin(DAC2_CS_GPIO_Port, DAC2_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
default:
|
||||
dac161s997_spi_init();
|
||||
case DAC161S997_3:
|
||||
HAL_GPIO_WritePin(DAC3_CS_GPIO_Port, DAC3_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case DAC161S997_4:
|
||||
HAL_GPIO_WritePin(DAC4_CS_GPIO_Port, DAC4_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case DAC161S997_5:
|
||||
HAL_GPIO_WritePin(DAC5_CS_GPIO_Port, DAC5_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case DAC161S997_6:
|
||||
HAL_GPIO_WritePin(DAC6_CS_GPIO_Port, DAC6_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case DAC161S997_7:
|
||||
HAL_GPIO_WritePin(DAC7_CS_GPIO_Port, DAC7_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case DAC161S997_8:
|
||||
HAL_GPIO_WritePin(DAC8_CS_GPIO_Port, DAC8_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case DAC161S997_9:
|
||||
HAL_GPIO_WritePin(DAC9_CS_GPIO_Port, DAC9_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case DAC161S997_10:
|
||||
HAL_GPIO_WritePin(DAC10_CS_GPIO_Port, DAC10_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case DAC161S997_11:
|
||||
HAL_GPIO_WritePin(DAC11_CS_GPIO_Port, DAC11_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case DAC161S997_12:
|
||||
HAL_GPIO_WritePin(DAC12_CS_GPIO_Port, DAC12_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case DAC161S997_13:
|
||||
HAL_GPIO_WritePin(DAC13_CS_GPIO_Port, DAC13_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case DAC161S997_14:
|
||||
HAL_GPIO_WritePin(DAC14_CS_GPIO_Port, DAC14_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case DAC161S997_15:
|
||||
HAL_GPIO_WritePin(DAC15_CS_GPIO_Port, DAC15_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
case DAC161S997_16:
|
||||
HAL_GPIO_WritePin(DAC16_CS_GPIO_Port, DAC16_CS_Pin, GPIO_PIN_SET);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void board_spi_cs_on(chip_type_e chip_type)
|
||||
{
|
||||
switch (chip_type)
|
||||
{
|
||||
// case AD7124:
|
||||
// ad7124_cs_on();
|
||||
// break;
|
||||
case DAC161S997_1:
|
||||
dac161s997_cs_on(DAC161S997_1);
|
||||
break;
|
||||
case DAC161S997_2:
|
||||
dac161s997_cs_on(DAC161S997_2);
|
||||
break;
|
||||
default:
|
||||
dac161s997_cs_on(DAC161S997_2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void board_spi_cs_off(chip_type_e chip_type)
|
||||
{
|
||||
switch (chip_type)
|
||||
{
|
||||
// case AD7124:
|
||||
// ad7124_cs_off();
|
||||
// break;
|
||||
case DAC161S997_1:
|
||||
dac161s997_cs_off(DAC161S997_1);
|
||||
break;
|
||||
case DAC161S997_2:
|
||||
dac161s997_cs_off(DAC161S997_2);
|
||||
break;
|
||||
default:
|
||||
dac161s997_cs_off(DAC161S997_2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,23 +7,32 @@
|
|||
|
||||
typedef enum
|
||||
{
|
||||
AD7124 = 0,
|
||||
DAC161S997_1 = 1,
|
||||
DAC161S997_2 = 2,
|
||||
} chip_type_e; // 芯片类型
|
||||
DAC161S997_1 = 0,
|
||||
DAC161S997_2,
|
||||
DAC161S997_3,
|
||||
DAC161S997_4,
|
||||
DAC161S997_5,
|
||||
DAC161S997_6,
|
||||
DAC161S997_7,
|
||||
DAC161S997_8,
|
||||
DAC161S997_9,
|
||||
DAC161S997_10,
|
||||
DAC161S997_11,
|
||||
DAC161S997_12,
|
||||
DAC161S997_13,
|
||||
DAC161S997_14,
|
||||
DAC161S997_15,
|
||||
DAC161S997_16,
|
||||
DAC_MAX_NUM
|
||||
} dac_num_e; // DAC编号
|
||||
|
||||
extern int32_t spi_transmit_receive(SPI_HandleTypeDef *hspi, uint8_t *data_write, uint8_t bytes_number);
|
||||
|
||||
// extern void board_spi_init(chip_type_e chip_type);
|
||||
extern void board_spi_cs_on(chip_type_e chip_type);
|
||||
extern void board_spi_cs_off(chip_type_e chip_type);
|
||||
extern void board_spi_cs_on(uint8_t chip_type);
|
||||
extern void board_spi_cs_off(uint8_t chip_type);
|
||||
|
||||
void dac161s997_cs_on(uint8_t dac_num);
|
||||
void dac161s997_cs_off(uint8_t dac_num);
|
||||
void dac161s997_spi_init(void);
|
||||
|
||||
void ad7124_cs_off(void);
|
||||
void ad7124_cs_on(void);
|
||||
void ad7124_spi_init(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -54,53 +54,83 @@ Mcu.IP8=TIM2
|
|||
Mcu.IPNb=9
|
||||
Mcu.Name=STM32F407Z(E-G)Tx
|
||||
Mcu.Package=LQFP144
|
||||
Mcu.Pin0=PE5
|
||||
Mcu.Pin1=PF0
|
||||
Mcu.Pin10=PA1
|
||||
Mcu.Pin11=PA2
|
||||
Mcu.Pin12=PA3
|
||||
Mcu.Pin13=PA4
|
||||
Mcu.Pin14=PA7
|
||||
Mcu.Pin15=PC4
|
||||
Mcu.Pin16=PC5
|
||||
Mcu.Pin17=PF12
|
||||
Mcu.Pin18=PF14
|
||||
Mcu.Pin19=PE7
|
||||
Mcu.Pin2=PF1
|
||||
Mcu.Pin20=PE8
|
||||
Mcu.Pin21=PE9
|
||||
Mcu.Pin22=PE10
|
||||
Mcu.Pin23=PB11
|
||||
Mcu.Pin24=PB12
|
||||
Mcu.Pin25=PB13
|
||||
Mcu.Pin26=PD14
|
||||
Mcu.Pin27=PD15
|
||||
Mcu.Pin28=PG4
|
||||
Mcu.Pin29=PA13
|
||||
Mcu.Pin3=PF2
|
||||
Mcu.Pin30=PA14
|
||||
Mcu.Pin31=PD0
|
||||
Mcu.Pin32=PD1
|
||||
Mcu.Pin33=PD2
|
||||
Mcu.Pin34=PD3
|
||||
Mcu.Pin35=PD4
|
||||
Mcu.Pin36=PD5
|
||||
Mcu.Pin37=PD7
|
||||
Mcu.Pin38=PG9
|
||||
Mcu.Pin39=PB3
|
||||
Mcu.Pin4=PF3
|
||||
Mcu.Pin40=PB4
|
||||
Mcu.Pin41=PB5
|
||||
Mcu.Pin42=PB6
|
||||
Mcu.Pin43=VP_FREERTOS_VS_CMSIS_V1
|
||||
Mcu.Pin44=VP_LWIP_VS_Enabled
|
||||
Mcu.Pin45=VP_SYS_VS_tim4
|
||||
Mcu.Pin5=PF4
|
||||
Mcu.Pin6=PF5
|
||||
Mcu.Pin7=PH0-OSC_IN
|
||||
Mcu.Pin8=PH1-OSC_OUT
|
||||
Mcu.Pin9=PC1
|
||||
Mcu.PinsNb=46
|
||||
Mcu.Pin0=PE2
|
||||
Mcu.Pin1=PE3
|
||||
Mcu.Pin10=PF6
|
||||
Mcu.Pin11=PF8
|
||||
Mcu.Pin12=PH0-OSC_IN
|
||||
Mcu.Pin13=PH1-OSC_OUT
|
||||
Mcu.Pin14=PC1
|
||||
Mcu.Pin15=PA1
|
||||
Mcu.Pin16=PA2
|
||||
Mcu.Pin17=PA3
|
||||
Mcu.Pin18=PA4
|
||||
Mcu.Pin19=PA7
|
||||
Mcu.Pin2=PE4
|
||||
Mcu.Pin20=PC4
|
||||
Mcu.Pin21=PC5
|
||||
Mcu.Pin22=PB0
|
||||
Mcu.Pin23=PF12
|
||||
Mcu.Pin24=PF14
|
||||
Mcu.Pin25=PG0
|
||||
Mcu.Pin26=PE7
|
||||
Mcu.Pin27=PE8
|
||||
Mcu.Pin28=PE9
|
||||
Mcu.Pin29=PE10
|
||||
Mcu.Pin3=PE5
|
||||
Mcu.Pin30=PE11
|
||||
Mcu.Pin31=PE13
|
||||
Mcu.Pin32=PB11
|
||||
Mcu.Pin33=PB12
|
||||
Mcu.Pin34=PB13
|
||||
Mcu.Pin35=PD8
|
||||
Mcu.Pin36=PD10
|
||||
Mcu.Pin37=PD12
|
||||
Mcu.Pin38=PD14
|
||||
Mcu.Pin39=PD15
|
||||
Mcu.Pin4=PF0
|
||||
Mcu.Pin40=PG2
|
||||
Mcu.Pin41=PG4
|
||||
Mcu.Pin42=PG6
|
||||
Mcu.Pin43=PA9
|
||||
Mcu.Pin44=PA11
|
||||
Mcu.Pin45=PA13
|
||||
Mcu.Pin46=PA14
|
||||
Mcu.Pin47=PA15
|
||||
Mcu.Pin48=PC11
|
||||
Mcu.Pin49=PD0
|
||||
Mcu.Pin5=PF1
|
||||
Mcu.Pin50=PD1
|
||||
Mcu.Pin51=PD2
|
||||
Mcu.Pin52=PD3
|
||||
Mcu.Pin53=PD4
|
||||
Mcu.Pin54=PD5
|
||||
Mcu.Pin55=PD6
|
||||
Mcu.Pin56=PD7
|
||||
Mcu.Pin57=PG9
|
||||
Mcu.Pin58=PG10
|
||||
Mcu.Pin59=PG11
|
||||
Mcu.Pin6=PF2
|
||||
Mcu.Pin60=PG12
|
||||
Mcu.Pin61=PG13
|
||||
Mcu.Pin62=PG14
|
||||
Mcu.Pin63=PG15
|
||||
Mcu.Pin64=PB3
|
||||
Mcu.Pin65=PB4
|
||||
Mcu.Pin66=PB5
|
||||
Mcu.Pin67=PB6
|
||||
Mcu.Pin68=PB7
|
||||
Mcu.Pin69=PB8
|
||||
Mcu.Pin7=PF3
|
||||
Mcu.Pin70=PB9
|
||||
Mcu.Pin71=PE0
|
||||
Mcu.Pin72=PE1
|
||||
Mcu.Pin73=VP_FREERTOS_VS_CMSIS_V1
|
||||
Mcu.Pin74=VP_LWIP_VS_Enabled
|
||||
Mcu.Pin75=VP_SYS_VS_tim4
|
||||
Mcu.Pin8=PF4
|
||||
Mcu.Pin9=PF5
|
||||
Mcu.PinsNb=76
|
||||
Mcu.ThirdPartyNb=0
|
||||
Mcu.UserConstants=
|
||||
Mcu.UserName=STM32F407ZGTx
|
||||
|
@ -127,10 +157,24 @@ NVIC.TimeBaseIP=TIM4
|
|||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||
PA1.Mode=RMII
|
||||
PA1.Signal=ETH_REF_CLK
|
||||
PA11.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PA11.GPIO_Label=HART14_RTS
|
||||
PA11.GPIO_PuPd=GPIO_PULLUP
|
||||
PA11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PA11.Locked=true
|
||||
PA11.PinState=GPIO_PIN_SET
|
||||
PA11.Signal=GPIO_Output
|
||||
PA13.Mode=Serial_Wire
|
||||
PA13.Signal=SYS_JTMS-SWDIO
|
||||
PA14.Mode=Serial_Wire
|
||||
PA14.Signal=SYS_JTCK-SWCLK
|
||||
PA15.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PA15.GPIO_Label=HART12_RTS
|
||||
PA15.GPIO_PuPd=GPIO_PULLUP
|
||||
PA15.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PA15.Locked=true
|
||||
PA15.PinState=GPIO_PIN_SET
|
||||
PA15.Signal=GPIO_Output
|
||||
PA2.Mode=RMII
|
||||
PA2.Signal=ETH_MDIO
|
||||
PA3.GPIOParameters=GPIO_Speed,GPIO_Label
|
||||
|
@ -146,6 +190,20 @@ PA4.PinState=GPIO_PIN_SET
|
|||
PA4.Signal=GPIO_Output
|
||||
PA7.Mode=RMII
|
||||
PA7.Signal=ETH_CRS_DV
|
||||
PA9.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PA9.GPIO_Label=HART15_RTS
|
||||
PA9.GPIO_PuPd=GPIO_PULLUP
|
||||
PA9.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PA9.Locked=true
|
||||
PA9.PinState=GPIO_PIN_SET
|
||||
PA9.Signal=GPIO_Output
|
||||
PB0.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PB0.GPIO_Label=HART9_RTS
|
||||
PB0.GPIO_PuPd=GPIO_PULLUP
|
||||
PB0.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PB0.Locked=true
|
||||
PB0.PinState=GPIO_PIN_SET
|
||||
PB0.Signal=GPIO_Output
|
||||
PB11.Mode=RMII
|
||||
PB11.Signal=ETH_TX_EN
|
||||
PB12.Mode=RMII
|
||||
|
@ -169,14 +227,56 @@ PB6.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
|||
PB6.Locked=true
|
||||
PB6.PinState=GPIO_PIN_SET
|
||||
PB6.Signal=GPIO_Output
|
||||
PB7.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PB7.GPIO_Label=DAC2_CS
|
||||
PB7.GPIO_PuPd=GPIO_PULLUP
|
||||
PB7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PB7.Locked=true
|
||||
PB7.PinState=GPIO_PIN_SET
|
||||
PB7.Signal=GPIO_Output
|
||||
PB8.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PB8.GPIO_Label=DAC3_CS
|
||||
PB8.GPIO_PuPd=GPIO_PULLUP
|
||||
PB8.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PB8.Locked=true
|
||||
PB8.PinState=GPIO_PIN_SET
|
||||
PB8.Signal=GPIO_Output
|
||||
PB9.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PB9.GPIO_Label=DAC4_CS
|
||||
PB9.GPIO_PuPd=GPIO_PULLUP
|
||||
PB9.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PB9.Locked=true
|
||||
PB9.PinState=GPIO_PIN_SET
|
||||
PB9.Signal=GPIO_Output
|
||||
PC1.Mode=RMII
|
||||
PC1.Signal=ETH_MDC
|
||||
PC11.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PC11.GPIO_Label=HART13_RTS
|
||||
PC11.GPIO_PuPd=GPIO_PULLUP
|
||||
PC11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PC11.Locked=true
|
||||
PC11.PinState=GPIO_PIN_SET
|
||||
PC11.Signal=GPIO_Output
|
||||
PC4.Mode=RMII
|
||||
PC4.Signal=ETH_RXD0
|
||||
PC5.Mode=RMII
|
||||
PC5.Signal=ETH_RXD1
|
||||
PD0.Signal=FSMC_D2_DA2
|
||||
PD1.Signal=FSMC_D3_DA3
|
||||
PD10.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PD10.GPIO_Label=HART4_RTS
|
||||
PD10.GPIO_PuPd=GPIO_PULLUP
|
||||
PD10.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PD10.Locked=true
|
||||
PD10.PinState=GPIO_PIN_SET
|
||||
PD10.Signal=GPIO_Output
|
||||
PD12.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PD12.GPIO_Label=HART3_RTS
|
||||
PD12.GPIO_PuPd=GPIO_PULLUP
|
||||
PD12.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PD12.Locked=true
|
||||
PD12.PinState=GPIO_PIN_SET
|
||||
PD12.Signal=GPIO_Output
|
||||
PD14.Signal=FSMC_D0_DA0
|
||||
PD15.Signal=FSMC_D1_DA1
|
||||
PD2.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
|
||||
|
@ -186,7 +286,7 @@ PD2.GPIO_PuPd=GPIO_PULLUP
|
|||
PD2.Locked=true
|
||||
PD2.Signal=GPXTI2
|
||||
PD3.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PD3.GPIO_Label=CH438_1_RST
|
||||
PD3.GPIO_Label=CH438_RST
|
||||
PD3.GPIO_PuPd=GPIO_PULLUP
|
||||
PD3.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PD3.Locked=true
|
||||
|
@ -194,9 +294,72 @@ PD3.PinState=GPIO_PIN_SET
|
|||
PD3.Signal=GPIO_Output
|
||||
PD4.Signal=FSMC_NOE
|
||||
PD5.Signal=FSMC_NWE
|
||||
PD6.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PD6.GPIO_Label=DAC10_CS
|
||||
PD6.GPIO_PuPd=GPIO_PULLUP
|
||||
PD6.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PD6.Locked=true
|
||||
PD6.PinState=GPIO_PIN_SET
|
||||
PD6.Signal=GPIO_Output
|
||||
PD7.Mode=NorPsramChipSelect1_1
|
||||
PD7.Signal=FSMC_NE1
|
||||
PD8.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PD8.GPIO_Label=HART5_RTS
|
||||
PD8.GPIO_PuPd=GPIO_PULLUP
|
||||
PD8.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PD8.Locked=true
|
||||
PD8.PinState=GPIO_PIN_SET
|
||||
PD8.Signal=GPIO_Output
|
||||
PE0.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PE0.GPIO_Label=DAC5_CS
|
||||
PE0.GPIO_PuPd=GPIO_PULLUP
|
||||
PE0.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PE0.Locked=true
|
||||
PE0.PinState=GPIO_PIN_SET
|
||||
PE0.Signal=GPIO_Output
|
||||
PE1.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PE1.GPIO_Label=DAC6_CS
|
||||
PE1.GPIO_PuPd=GPIO_PULLUP
|
||||
PE1.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PE1.Locked=true
|
||||
PE1.PinState=GPIO_PIN_SET
|
||||
PE1.Signal=GPIO_Output
|
||||
PE10.Signal=FSMC_D7_DA7
|
||||
PE11.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PE11.GPIO_Label=HART7_RTS
|
||||
PE11.GPIO_PuPd=GPIO_PULLUP
|
||||
PE11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PE11.Locked=true
|
||||
PE11.PinState=GPIO_PIN_SET
|
||||
PE11.Signal=GPIO_Output
|
||||
PE13.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PE13.GPIO_Label=HART6_RTS
|
||||
PE13.GPIO_PuPd=GPIO_PULLUP
|
||||
PE13.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PE13.Locked=true
|
||||
PE13.PinState=GPIO_PIN_SET
|
||||
PE13.Signal=GPIO_Output
|
||||
PE2.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PE2.GPIO_Label=DAC7_CS
|
||||
PE2.GPIO_PuPd=GPIO_PULLUP
|
||||
PE2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PE2.Locked=true
|
||||
PE2.PinState=GPIO_PIN_SET
|
||||
PE2.Signal=GPIO_Output
|
||||
PE3.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PE3.GPIO_Label=DAC8_CS
|
||||
PE3.GPIO_PuPd=GPIO_PULLUP
|
||||
PE3.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PE3.Locked=true
|
||||
PE3.PinState=GPIO_PIN_SET
|
||||
PE3.Signal=GPIO_Output
|
||||
PE4.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PE4.GPIO_Label=DAC9_CS
|
||||
PE4.GPIO_PuPd=GPIO_PULLUP
|
||||
PE4.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PE4.Locked=true
|
||||
PE4.PinState=GPIO_PIN_SET
|
||||
PE4.Signal=GPIO_Output
|
||||
PE5.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PE5.GPIO_Label=PE5_LED
|
||||
PE5.GPIO_PuPd=GPIO_PULLUP
|
||||
|
@ -211,7 +374,7 @@ PF0.Signal=FSMC_A0
|
|||
PF1.Signal=FSMC_A1
|
||||
PF12.Signal=FSMC_A6
|
||||
PF14.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PF14.GPIO_Label=CH438_1_AMOD
|
||||
PF14.GPIO_Label=CH438_AMOD
|
||||
PF14.GPIO_PuPd=GPIO_PULLDOWN
|
||||
PF14.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PF14.Locked=true
|
||||
|
@ -221,13 +384,90 @@ PF2.Signal=FSMC_A2
|
|||
PF3.Signal=FSMC_A3
|
||||
PF4.Signal=FSMC_A4
|
||||
PF5.Signal=FSMC_A5
|
||||
PF6.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PF6.GPIO_Label=HART11_RTS
|
||||
PF6.GPIO_PuPd=GPIO_PULLUP
|
||||
PF6.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PF6.Locked=true
|
||||
PF6.PinState=GPIO_PIN_SET
|
||||
PF6.Signal=GPIO_Output
|
||||
PF8.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PF8.GPIO_Label=HART10_RTS
|
||||
PF8.GPIO_PuPd=GPIO_PULLUP
|
||||
PF8.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PF8.Locked=true
|
||||
PF8.PinState=GPIO_PIN_SET
|
||||
PF8.Signal=GPIO_Output
|
||||
PG0.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PG0.GPIO_Label=HART8_RTS
|
||||
PG0.GPIO_PuPd=GPIO_PULLUP
|
||||
PG0.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PG0.Locked=true
|
||||
PG0.PinState=GPIO_PIN_SET
|
||||
PG0.Signal=GPIO_Output
|
||||
PG10.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PG10.GPIO_Label=DAC11_CS
|
||||
PG10.GPIO_PuPd=GPIO_PULLUP
|
||||
PG10.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PG10.Locked=true
|
||||
PG10.PinState=GPIO_PIN_SET
|
||||
PG10.Signal=GPIO_Output
|
||||
PG11.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PG11.GPIO_Label=DAC12_CS
|
||||
PG11.GPIO_PuPd=GPIO_PULLUP
|
||||
PG11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PG11.Locked=true
|
||||
PG11.PinState=GPIO_PIN_SET
|
||||
PG11.Signal=GPIO_Output
|
||||
PG12.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PG12.GPIO_Label=DAC13_CS
|
||||
PG12.GPIO_PuPd=GPIO_PULLUP
|
||||
PG12.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PG12.Locked=true
|
||||
PG12.PinState=GPIO_PIN_SET
|
||||
PG12.Signal=GPIO_Output
|
||||
PG13.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PG13.GPIO_Label=DAC14_CS
|
||||
PG13.GPIO_PuPd=GPIO_PULLUP
|
||||
PG13.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PG13.Locked=true
|
||||
PG13.PinState=GPIO_PIN_SET
|
||||
PG13.Signal=GPIO_Output
|
||||
PG14.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PG14.GPIO_Label=DAC15_CS
|
||||
PG14.GPIO_PuPd=GPIO_PULLUP
|
||||
PG14.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PG14.Locked=true
|
||||
PG14.PinState=GPIO_PIN_SET
|
||||
PG14.Signal=GPIO_Output
|
||||
PG15.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PG15.GPIO_Label=DAC16_CS
|
||||
PG15.GPIO_PuPd=GPIO_PULLUP
|
||||
PG15.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PG15.Locked=true
|
||||
PG15.PinState=GPIO_PIN_SET
|
||||
PG15.Signal=GPIO_Output
|
||||
PG2.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PG2.GPIO_Label=HART2_RTS
|
||||
PG2.GPIO_PuPd=GPIO_PULLUP
|
||||
PG2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PG2.Locked=true
|
||||
PG2.PinState=GPIO_PIN_SET
|
||||
PG2.Signal=GPIO_Output
|
||||
PG4.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PG4.GPIO_Label=HART1_RTS
|
||||
PG4.GPIO_PuPd=GPIO_PULLUP
|
||||
PG4.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
|
||||
PG4.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PG4.Locked=true
|
||||
PG4.PinState=GPIO_PIN_SET
|
||||
PG4.Signal=GPIO_Output
|
||||
PG6.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
|
||||
PG6.GPIO_Label=HART16_RTS
|
||||
PG6.GPIO_PuPd=GPIO_PULLUP
|
||||
PG6.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PG6.Locked=true
|
||||
PG6.PinState=GPIO_PIN_SET
|
||||
PG6.Signal=GPIO_Output
|
||||
PG9.Mode=NorPsramChipSelect2_2
|
||||
PG9.Signal=FSMC_NE2
|
||||
PH0-OSC_IN.Mode=HSE-External-Oscillator
|
||||
|
|
Loading…
Reference in New Issue