Embedded CMSIS风格simplisity studio中的TX-RX测试代码
您好,我已经构建了以下UART初始化的基本内容。 现在我需要对发送和接收数据寄存器进行操作 关于发送数据: 我需要确保USARTn_状态寄存器中的TXS标志已设置,并且我们使用下表所示的TXDATA寄存器 因此,使用CMSIS风格的写作,但我不确定有两件事: 1.如何准确定义用于清除旧TXDATA的反转位掩码 2.如何在发送寄存器中定义二进制5和? 谢谢Embedded CMSIS风格simplisity studio中的TX-RX测试代码,embedded,uart,Embedded,Uart,您好,我已经构建了以下UART初始化的基本内容。 现在我需要对发送和接收数据寄存器进行操作 关于发送数据: 我需要确保USARTn_状态寄存器中的TXS标志已设置,并且我们使用下表所示的TXDATA寄存器 因此,使用CMSIS风格的写作,但我不确定有两件事: 1.如何准确定义用于清除旧TXDATA的反转位掩码 2.如何在发送寄存器中定义二进制5和? 谢谢 #include "em_device.h" #include "em_cmu.h" #inclu
#include "em_device.h"
#include "em_cmu.h"
#include "em_gpio.h"
#include "em_usart.h"
#include "em_chip.h"
#define BUFFER_SIZE 80
char buffer[BUFFER_SIZE];
/**************************************************************************//**
* @brief Main function
*****************************************************************************/
int main(void)
{
USART_InitAsync_TypeDef init = USART_INITASYNC_DEFAULT;
char welcome_string[] = "Silicon Labs UART Code example!\r\f";
int i,j;
// Chip errata
CHIP_Init();
// Enable oscillator to GPIO and USART1 modules
CMU_ClockEnable(cmuClock_GPIO, true);
CMU_ClockEnable(cmuClock_USART0, true);
// set pin modes for UART TX and RX pins
GPIO_PinModeSet(gpioPortC, 1, gpioModeInput, 0);
GPIO_PinModeSet(gpioPortC, 0, gpioModePushPull, 1);
// Initialize USART asynchronous mode and route pins
USART_InitAsync(USART0, &init);
USART0->ROUTE |= USART_ROUTE_TXPEN | USART_ROUTE_RXPEN;
if (USART_STATUS_TXC==0) /* Transmition has not started yet */
{
USART0->TXDATA=(USAT0->TXDATA&~_USART_STATUS_TXDATA_MASK)|0b0101) /*send binary 5 from Tx */
USART0->STATUS=(USAT0->STATUS&~_USART_STATUS_TXC_MASK)|USART_STATUS_TXC) /*Transmition finished*/
}