Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Embedded CMSIS风格simplisity studio中的TX-RX测试代码_Embedded_Uart - Fatal编程技术网

Embedded CMSIS风格simplisity studio中的TX-RX测试代码

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

您好,我已经构建了以下UART初始化的基本内容。 现在我需要对发送和接收数据寄存器进行操作

关于发送数据:

我需要确保USARTn_状态寄存器中的TXS标志已设置,并且我们使用下表所示的TXDATA寄存器

因此,使用CMSIS风格的写作,但我不确定有两件事:

1.如何准确定义用于清除旧TXDATA的反转位掩码

2.如何在发送寄存器中定义二进制5和? 谢谢

#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*/
}