Jetson TX1 学习2 通过串口通信控制stm32点灯

本文介绍了通过Python的pyserial库在JetsonTX1上设置串口权限,以115200波特率与STM32F103进行通信,控制STM32的LED灯闪烁。STM32端利用中断处理接收到的数据,并根据接收到的值切换LED的状态。
摘要由CSDN通过智能技术生成

学习过程中为了防止遗忘 以此文字记录 如有错误 多多包涵

怕什么真理无穷,进一寸有一寸的欢喜 --- 胡适

前置内容:

        pyserial 库

学习目标:

  • 通过串口实现 Jetson TX1 与 STM32F103 通信 并控制 STM32 led灯闪烁

学习内容:

        ls -l /dev/ttyTHS*

        查看一下 系统串口

其中 使用 ttyTHS2

sudo chmod 777 /dev/ttyTHS2 

设置一下权限 不然等待py代码会报错

TX1 代码如下

import serial as uart
import struct, time
data = 1
data0 = 170
data1 = 1
data2 = 0
i = 1
uart1 = uart.Serial("/dev/ttyTHS2", 115200) #初始串口 波特率为115200 

while 1:
	uart1.write(chr(data0).encode("utf-8")) #将data0 转换为字符串发送 
	if i == 1:
		i = 0
		uart1.write(chr(data1).encode("utf-8"))
	elif i == 0:
		i = 1
		uart1.write(chr(data2).encode("utf-8"))
	data = uart1.read(1)
	print(data)                             #打印串口接收到的数据
	time.sleep(2)	

 STM32  串口 中断 代码如下

uint8_t i = 0;
void USART3_IRQHandler(void)
{
  uint8_t temp = 0;
  if (USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
  {
    temp = USART_ReceiveData(USART3);
    i++;
    USART_SendData(USART3, temp);
    // USART_SendData(USART3, i);
    tx1_data[i] = temp;
    if (temp == 0xaa)
    {
      i = 0;
    }
    else if (i >= 9)
    {
      i = 0;
    }
    USART_ClearFlag(USART3, USART_FLAG_RXNE);
  }
}

 STM32  main.c 代码如下

int fputc(int ch, FILE *p)
{
	USART_SendData(USART3, (u8)ch);
	while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET);
	return ch;
}

int main(void)
{
	/*初始化函数*/
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 优先级分组	先优先级4,从优先级4
	delay_init();                                   // 延迟函数初始化
	USART3_Init_TX_B10_RX_B11(115200);              // 串口初始化
	C13_Init();                                     // LED初始化
	while (1)
	{
		if (tx1_data[1] == 0x01)
		{
			GPIO_SetBits(GPIOC, GPIO_Pin_13);
		}
		else if (tx1_data[1] == 0x00)
		{
			GPIO_ResetBits(GPIOC, GPIO_Pin_13);
		}
		delay_ms(20);
	}
}

疑问:

  • 暂无

学习时间:2023.1.4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值