完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
嗨,
我是新手使用STM8L控制器。 我只是想使用STM8L发现板将简单字符放在UART上。 但我没有做到这一点。 以下是我的代码。 void main(void) { u8数据='N'; CLK_DeInit(); GPIO_DeInit(GPIOC); CLK_HSICmd(ENABLE); CLK_SYSCLKSourceConfig(CLK_RTCCLKSource_HSI); CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1); GPIO_ExternalPullUpConfig(GPIOA,GPIO_Pin_3,ENABLE); GPIO_ExternalPullUpConfig(GPIOA,GPIO_Pin_2,ENABLE); USART_DeInit(USART1); CLK_PeripheralClockConfig(CLK_Peripheral_USART1,ENABLE); USART_Init(USART1,9600,USART_WordLength_8b,USART_StopBits_1,USART_Parity_No,USART_Mode_Tx | USART_Mode_Rx); USART_ClockInit(USART1,USART_Clock_Disable,USART_CPOL_Low,USART_CPHA_1Edge,USART_LastBit_Disable); USART_Cmd(USART1,ENABLE); while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)== RESET)//等待传输完成 { } USART_SendData8(USART1,Data); GPIO_Init(GPIOC,GPIO_Pin_7,GPIO_Mode_Out_PP_High_Fast); // Init蓝色LED // GPIO_Init(GPIOE,GPIO_Pin_7,GPIO_Mode_Out_PP_High_Fast); // Init绿色LED /* 无限循环 */ 而(1) { //等待传输完成 { } USART_SendData8(USART1,Data); GPIO_SetBits(GPIOC,GPIO_Pin_7); delay_ms(1000); GPIO_ResetBits(GPIOC,GPIO_Pin_7); delay_ms(1000); } } 我正在使用IAR workbetch for STM8 evolution version。 以上来自于谷歌翻译 以下为原文 Hi, I am new to use STM8L controller. I am just trying to put Simple character on UART using STM8L discovery board. But I am failed to do this. Following is my code for this. void main(void) { u8 Data = 'N'; CLK_DeInit(); GPIO_DeInit(GPIOC); CLK_HSICmd(ENABLE); CLK_SYSCLKSourceConfig(CLK_RTCCLKSource_HSI); CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1); GPIO_ExternalPullUpConfig(GPIOA, GPIO_Pin_3, ENABLE); GPIO_ExternalPullUpConfig(GPIOA, GPIO_Pin_2, ENABLE); USART_DeInit(USART1); CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE); USART_Init(USART1, 9600, USART_WordLength_8b, USART_StopBits_1, USART_Parity_No, USART_Mode_Tx | USART_Mode_Rx); USART_ClockInit(USART1, USART_Clock_Disable, USART_CPOL_Low, USART_CPHA_1Edge, USART_LastBit_Disable); USART_Cmd(USART1, ENABLE); while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET) // Wait for transmition to complete { } USART_SendData8(USART1, Data); GPIO_Init(GPIOC, GPIO_Pin_7, GPIO_Mode_Out_PP_High_Fast); // Init Blue LED // GPIO_Init(GPIOE, GPIO_Pin_7, GPIO_Mode_Out_PP_High_Fast); // Init Green LED /* Infinite loop */ while (1) { // Wait for transmition to complete { } USART_SendData8(USART1, Data); GPIO_SetBits(GPIOC, GPIO_Pin_7); delay_ms(1000); GPIO_ResetBits(GPIOC, GPIO_Pin_7); delay_ms(1000); } } I am using IAR workbetch for STM8 evolution version. |
|
相关推荐
3个回答
|
|
有一个在STM8L-Discovery上使用UART的教程
http://colecovision.eu/stm8/STM8L-DISCOVERY%20Serial.shtml 它使用SDCC,但这应该不是问题,因为IAR和SDCC是STM8的两个最符合标准的compielrs,因此在它们之间移植很容易。 菲利普 P.S。:在您的代码中,您似乎正在尝试使用STM提供的库。我也尝试在两年前使用那个,但在那里有一个UART处理的错误。如果它现在固定,请不要知道。上面链接的教程不使用STM提供的库。 以上来自于谷歌翻译 以下为原文 There is a tutorial for using the UART on the STM8L-Discovery at http://colecovision.eu/stm8/STM8L-DISCOVERY%20Serial.shtml it uses SDCC, but that shouldn't be a problem, since IAR and SDCC are the two most standard-compliant compielrs for the STM8, so porting between them is easy. Philipp P.S.: It seems in your code, you are trying to use the library provided by STM. I also tried to use that one a two years ago, but there was a bug in UART handling in there. Don't knwo if its fixed by now. The tutorial linked above does not use the library provided by STM. |
|
|
|
|
|
|
|
你好Krause,
我正在使用STM8L051和STVD Cosmic编译器+ Std外设库,并且已成功传输字符,但我在接收方面遇到问题,无论是在中断和放大器中。轮询模式。你能说清楚你所指的库bug是什么吗?我正在使用版本 的图书馆。我可以看到2013年6月1日发布的发布说明有以下变化: stm8l15x_usart.c / .H 更新''USART_ClearITPendingBit()''函数和参数列表。 我不知道这个错误是否得到纠正。无论如何,我的轮询代码如下: 使用中断时,中断永远不会到来。我能够在STM8的Rx引脚上查看波形,所以我知道数据正在进行中。我究竟做错了什么? 以上来自于谷歌翻译 以下为原文 Hello Krause, I am using STM8L051 with STVD Cosmic compiler + Std peripheral lib and have been successful at transmitting characters but I am having problem in receiving, both in Interrupt & polling modes. Can you plz state what is the library bug you were referring to? I am using version of the library. I can see a change in the release notes for V1.6.0 / 28-June-2013 as: stm8l15x_usart.c/.h Update ''USART_ClearITPendingBit()'' function and parameter list. I dont know if the bug is corrected by that. Anyway my polling code is as follows:
When using Interrupts, the interrupt never comes. I am able to view waveforms on Rx pin of STM8, so I know data is going to it. What am I doing wrong? |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2741 浏览 1 评论
3244 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1813 浏览 1 评论
3653 浏览 6 评论
6043 浏览 21 评论
1342浏览 4评论
203浏览 3评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
356浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
446浏览 2评论
STM32处理增量式编码器Z信号如何判断中断是正转的还是反向转的?
275浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 10:47 , Processed in 1.004183 second(s), Total 50, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号