历史上的今天
今天是:2024年10月12日(星期六)
2021年10月12日 | STM32之串口的使用
2021-10-12 来源:eefocus
串口的使用


在KEIL里继续软件仿真
仿真和下载时要注意的是,仿真要选USE Simulation 而下载要选右边的JTAG。。。。

然后点击debug 进入调试界面
view--->serial windos -->UART 1
全速运行 其结果如下:

串口发送数据就到此为止。
串口接收数据
这儿写的跟上面的已经没有关系了,不要搞混。
关于从PC机发送数据到STM32,这一部分则需要中断来实现,因为我们不需要时时刻刻都来检测外部是否发出数据给STM32,因此只要有数据来,就触发中断。这里就需要配置NVIC了
void NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //优先组为2
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; //打开USART中断通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; //抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; //子优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //中断通道使能
NVIC_Init(&NVIC_InitStructure);
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //串口接收中断使能
USART_Cmd(USART1, ENABLE);
}
其他配置比如串口复用到IO配置,串口时钟配置,和发送数据是一样的。
串口中断处理函数:
void USART1_IRQHandler(void)
{ int RX_status; //自己定义一个标志位
RX_status = USART_GetFlagStatus(USART1, USART_FLAG_RXNE);//读取接收数据标志位,如果装好了一帧数据则硬件将其置一。
if(RX_status == SET) {
USART_SendData(USART1 , USART_ReceiveData(USART1));//将收到的数据再由STM32发送给PC机。
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);//等待发送完成。
}
}
串口的发送接收大致如此,还是要搞懂什么数据位,硬件流,停止位,校验位什么,一个东西既然出现了就要好好分析出现的意义。想到了今天给电脑拆机清灰,电脑最好两年清一次。反正每次上螺丝都会多出那么一两个来,是不是可以不用要?
肯定不是,生产商肯定也知道节约成本什么,他们的结构工程师也知道PCB上开一个螺丝孔也是要收钱的。所以每一颗螺丝都有它的意义,所以什么校验位,停止位也有他的意义,即便我们不使用。其实剩的螺丝我也扔了,完全不知道上在哪儿!
差不多就到这里了,有问题或者需要STM32的学习资料,关注我的新浪微博@忙碌的小姚,私信我即可,
学习知识一定要主动,这是多么痛的领悟啊!!!
史海拾趣
|
1前言 软件无线电(Software Radio)是随着计算机技术和高速数字信号处理技术的发展迅速而发展起来的。其基本思想是将宽带A/D及D/A变换器尽可能地靠近天线,将电台的各种功能用一个开放性、模块化平台上的软件实现。软件无线电的 ...… 查看全部问答> |
|
请问各位大侠 这个要怎么设置啊?可以让CE直接启动,DOS启动过程麻烦,而且看着让人恶心。 Setupdisk.144和Bootdisk.144这两个文件怎么提取啊? 谢谢各位了!… 查看全部问答> |
|
C#如何设置Windows Mobile的显示超时时间(不允许进入节电模式) 在Windows Mobile下的调用GPRS和服务端进行通信,在接收数据的过程中手机会进入节电模式,此时GPRS网络和程序就不运行了,有没有什么办法就是设置一下显示超时时间,在程序运行的时候不允许进入节电模式。… 查看全部问答> |
|
近来嵌入式挺火,于是大家都往这里挤。我想提醒大家的是,嵌入式马上也会成为如今的软件业。在你进来之前请先考虑清楚。但只要我们真的学精了一样东西,不管它将来变成什么样,哪怕最后只剩下一个人,那个人也一定就是你自己。 很多人以为搞嵌入 ...… 查看全部问答> |
|
STM8普及,无需ST-Link,新买的器件可以无限次数串口下载程序 STM8的单片机,只要内部是空的,就算Bootloader disable,也会上电运行Bootloader,可以从串口下载程序。新的器件虽然Bootloader disable,但是也可以用串口下载至少一次程序。 如果是一般的程序下载后,Bootloader是disable,那么不借助ST- ...… 查看全部问答> |





