×

STM32单片机与linux系统单片机串行通信资料下载

消耗积分:0 | 格式:pdf | 大小:171.86KB | 2021-04-01

张龙祥

分享资料个

作者:富贵人 1.串行通信的基本概念 串行是与并行想对应的,并行通信是指数据的各位同时被传送。串行通信是将要传送的数据一位位的依次顺序发送。 串行通信实现的是两个对象之间的数据传递,对象通常是单片机。通信实际上是在两个单片机上连上线,通过线路来传递信息。 如图,调制解调器非常重要,其作用是实现数字信号和模拟信号的转换。但是注意,调制解调器是远距离传输才有用。近距离传输不需要调制解调器(零Modem方式)。因此进行单片机的实验只需要将相应接口的线路连好就行。连接示意图如图 2.STM32单片机与电脑串行通信 1.信号线的连接 单片机与电脑通信通常用的是USB接口连接电脑。那么就需要首先将串口转为USB,STM32上有相应的硬件实现该功能,我们只需要看电路图线路是否连接。 以下是正点原子miniSTM32的连线步骤: (1)查单片机电路图,找到主板芯片上的U1_RXD与U_TXD接口。 (2)找到USB_232的RXD与TXD接口 (3)如果电路图上线路未连接,将主板芯片的U1_RXD通过跳线与USB_232上的TXD连接,主板芯片的U1_TXD通过跳线与USB_232上的UXD连接。 2.程序的编写 由于采用STM32官方固件库,因此编写串口通信程序非常简单。 思路: (1)初始化串口 (2) 调用USART_SendData函数向串口发送数据。 其中初始化串口包括 1) 串口时钟使能,GPIO 时钟使能 2) 串口复位 3) GPIO 端口模式设置 端口模式设置 4) 串口参数初始化 5) 开启中断并且初始化 NVIC (如果需要开启中断才这个步骤 ) 6) 使能串口 7) 编写中断函数 那么最简单的串口通信程序如下,注意,由于没有编写中断函数,此程序只发不收。发送的数据永远是01。 代码1 #include "stm32f10x.h" void my_delay_ms(int time); void my_delay_ms(int time) { int i=0; while(time--) { i=12000; while(i) { i--; } } } void uart_init(u32 bound){ //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA时钟 //USART1_TX GPIOA.9 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !