利用板子上面引出来的串口2,做一个无线通讯的模块,这样通过上位机软件就可以控制板子的启停。(目前我还没用写PC软件能力,先简单做一个测试。)、
无线模块(USART)介绍:
E32-400T20S 无线模块设计电路
该电路只需将模块的TXD 与 RXD 连接到 MCU的RXD和TXD即可。
E32模块是基于SX1278射频芯片的贴片型无线串口模块(TTL电平),透明传输方式,发射功率100MW,工作在410-441MHZ频段,采用LORA扩频技术。
SX1278支持LORA扩频技术,通讯距离远,抗干扰能力强的优势,同时有极强的保密性。模块具有数据加密和压缩功能,模块在空中传输的数据,具有随机性,通过严密的加解密算法,使得数据截获失去意义。而数据压缩功能有概率减小传输时间,减少受干扰的概率,提高可考性和传输效率。
软件代码部分:主要是初始化串口的一些配置参数,同时注意配置好无线模块的地址,信道和频段参数。
APM_MINI_DelayInit();
GPIO_Config_T gpioConfig;
USART_Config_T usartConfig;
APM_MINI_COMInit(COM2);
/* Enable GPIO clock */
RCM_EnableAHBPeriphClock(MINI_COM1_TX_GPIO_CLK | MINI_COM2_TX_GPIO_CLK);
/* Enable COM1 clock */
RCM_EnableAPB2PeriphClock(MINI_COM2_CLK);
/* Connect PXx to USARTx_Tx */
GPIO_ConfigPinAF(MINI_COM2_TX_GPIO_PORT, MINI_COM2_TX_SOURCE, MINI_COM2_TX_AF);
/* Connect PXx to USARRX_Rx */
GPIO_ConfigPinAF(MINI_COM2_RX_GPIO_PORT, MINI_COM2_RX_SOURCE, MINI_COM2_RX_AF);
/* Condiv USART Tx as alternate function push-pull */
gpioConfig.mode = GPIO_MODE_AF;
gpioConfig.pin = MINI_COM2_TX_PIN;
gpioConfig.speed = GPIO_SPEED_50MHz;
gpioConfig.outtype = GPIO_OUT_TYPE_PP;
gpioConfig.pupd = GPIO_PUPD_PU;
GPIO_Config(MINI_COM2_TX_GPIO_PORT, &gpioConfig);
/* Condiv USART Rx as input floating */
gpioConfig.pin = MINI_COM2_RX_PIN;
GPIO_Config(MINI_COM2_RX_GPIO_PORT, &gpioConfig);
/* MINI_USARTs condivd as follow: */
/* BaudRate = 115200 baud */
usartConfig.baudRate = 9600;
/* Receive and transmit enabled */
usartConfig.mode = USART_MODE_TX_RX;
/* Hardware flow control disabled (RTS and CTS signals) */
usartConfig.hardwareFlowCtrl = USART_FLOW_CTRL_NONE;
/* No parity */
usartConfig.parity = USART_PARITY_NONE;
/* One Stop Bit */
usartConfig.stopBits = USART_STOP_BIT_1;
/* Word Length = 8 Bits */
usartConfig.wordLength = USART_WORD_LEN_8B;
/* USART_Config */
USART_Config(MINI_COM2, &usartConfig);
/* Enable USART_Interrupt_RXBNEIE*/
USART_EnableInterrupt(MINI_COM2, USART_INT_RXBNEIE);
NVIC_EnableIRQRequest(MINI_COM2_IRQn, 2);
/* Enable USART */
USART_Enable(MINI_COM2);
/* MINI_COM1 Send data to PC, and you need to open serial assistant to observe*/
USART_Write(MINI_COM2, (uint8_t*)"芯查查 APM32F035通用控制板无线E32功能调试\r\n");
while (1)
{
APM_MINI_DelayMs(500);
USART_Write(MINI_COM2, (uint8_t*)"芯查查 APM32F035通用控制板无线E32功能调试\r\n");
}
代码测试如下图:
全部评论