已经确定芯片工作是没问题的了,我准备继续改造这个控制板,准备接一个调试串口 和 焊接一个状态灯,效果如下:
板载芯片的之间的连接关系:
型号 | stm32管脚 | 功能 | ||
PCF8563-SCL | 58 | PB6 | I2C1_SCL | |
PCF8564-SDA | 59 | PB7 | I2C1_SDA | |
LOCK_TX | 17 | PA3 | USART2_RX | 调试串口 |
LOCK_RX | 16 | PA2 | USART2_TX | |
LOGE_TX | 54 | PD2 | UART5_RX | |
LOGE_RX | 53 | PC12 | UART5_TX | |
GPS_TX | 30 | PB11 | USART3_RX | ublox-M8Q |
GPS_RX | 29 | PB10 | USART3_TX | |
GPRS_TX | 43 | PA10 | USART1_RX | SIM800C |
GPRS_RX | 42 | PA9 | USART1_TX | |
GPRS_RTS | 45 | PA12 | USART1_RTS | |
GPRS_CTS | 44 | PA11 | USART1_ CTS | |
GPRS_DTR | 40 | PC9 | ||
GPRS_ RI | 36 | PB15 | ||
GPRS_STATUS | 41 | PA8 | ||
LED | 8 | PC0 | 状态灯 |
由于控制板的电源应该是太阳能板供电 或 3.7V电池供电,我准备直接把他们都并到3.3V上,方便操作。
把搜集到的资料也共享一下,接下来要写个测试程序验证一下了。
写了个简单的点灯 和 串口测试的程序,1秒钟闪灯一次,1秒钟输出一次计数,一切正常!
定义一下LED
#define LED1_PIN GPIO_PIN_0
#define LED1_GPIO_PORT GPIOC
#define LED1_Off HAL_GPIO_WritePin(LED1_GPIO_PORT, LED1_PIN, GPIO_PIN_SET)
#define LED1_On HAL_GPIO_WritePin(LED1_GPIO_PORT, LED1_PIN, GPIO_PIN_RESET)
#define LED1_Toggle HAL_GPIO_TogglePin(LED1_GPIO_PORT, LED1_PIN)
main函数是这样的
int main(void)
{
/* USER CODE BEGIN 1 */
uint8_t i=0;
/* USER CODE END 1 */
/* 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();
MX_I2C1_Init();
MX_USART1_UART_Init();
MX_USART2_UART_Init();
MX_USART3_UART_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
HAL_UART_Transmit(&huart2, (uint8_t *)&i, 1, 0xFFFF);
LED1_Toggle;
HAL_Delay(1000);
i++;
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
此内容由EEWORLD论坛网友chenzhufly原创,如需转载或用于商业用途需征得作者同意并注明出处
谢谢分享!
如果串口可用了,是否可以通过AT指令来驱动SIM800C了?