完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我用STM8S105K4写 UART程序, 单个UART 程序 串口发送没问题, 但是 和ADC ,中断,等一些程序整合成一个程序时 ,发送的就是乱码。大师们是怎么回事?
单个程序: #include"stm8s105k4.h" #include"stdio.h" void CLK_Init(void) { CLK_CKDIVR = 0x00; } void UART2_Init(void) { UART2_CR3 = 0x00; UART2_CR2 = 0x00; UART2_CR3 = 0x00; UART2_BRR2 = 0x0b; //115200 UART2_BRR1 = 0x08; } char putchar(char c) { while(!(UART2_SR&0x40)); UART2_DR = c; while(!(UART2_SR&0x40)); return (c); } main() { unsigned char c; CLK_Init(); UART2_Init(); UART2_CR2 = 0x0c; printf("1"); /*while(1) { printf("nr请输入一个按键"); while(!(UART2_SR&0x20)); c = UART2_DR; printf("nr输入按键为%c。",c); }*/ } 整合后的程序: #include "stm8s105k4.h" #include "stdio.h" #include "delay.h" #include "smg.h" #include "adc.h" #include "interrupt.h" #include "uart.h" void CLK_Init(void) { CLK_CKDIVR |= 0x00; //时钟初始化为内部16M } main() { _asm("sim"); //对中断进行初始化需要加 头汇编语句 CLK_Init(); //时钟初始化 16M GPIO_SMG_IN(); //数码管IO初始化 tiM1_Init(); //中断初始化 ADC_Init(); //ADC初始化 UART2_Init(); //串口初始化 _asm("rim"); //对中断进行初始化需要加 尾汇编语句 delayms(1000); printf(""); } |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2105 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1941 浏览 3 评论
4537 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2084 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2599 浏览 1 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 15:16 , Processed in 0.512349 second(s), Total 71, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号